在 Android 中使用系统共享库
Utilising system shared libraries in Android
在 Android 中,PackageManager class 具有函数 getSharedLibraries
,其中 returns 内置于 os 中的共享库列表。
我希望能够通过反射使用这些库之一来调用某些功能。
一些背景,我将来会在 AOSP 中实现我自己的系统库,但现在我正在尝试测试如何实现上述功能。
在我构建的 Android 中,有一个名为 android.ext.services
的系统共享库,我正在对其进行测试。我尝试通过 System.loadLibrary("android.ext.services")
加载,但这会引发 UnsatisfiedLinkError
.
为了加载 android.ext.services 库并通过反射访问它,我缺少什么?
我已经获得了 acros 的各种来源,这在某种程度上暗示我必须在我的项目中拥有该库的本地副本,但我不明白为什么我不能从 os.
事实证明,您只需 link 应用程序清单中的库即可。这将告诉系统将库的代码包含在包的 class 加载程序中。
https://developer.android.com/guide/topics/manifest/uses-library-element
对于任何新的共享库,都应将其添加到 public.libraries.txt
有关详细信息,请参阅此内容:
https://source.android.com/devices/tech/config/namespaces_libraries
在 Android 中,PackageManager class 具有函数 getSharedLibraries
,其中 returns 内置于 os 中的共享库列表。
我希望能够通过反射使用这些库之一来调用某些功能。
一些背景,我将来会在 AOSP 中实现我自己的系统库,但现在我正在尝试测试如何实现上述功能。
在我构建的 Android 中,有一个名为 android.ext.services
的系统共享库,我正在对其进行测试。我尝试通过 System.loadLibrary("android.ext.services")
加载,但这会引发 UnsatisfiedLinkError
.
为了加载 android.ext.services 库并通过反射访问它,我缺少什么?
我已经获得了 acros 的各种来源,这在某种程度上暗示我必须在我的项目中拥有该库的本地副本,但我不明白为什么我不能从 os.
事实证明,您只需 link 应用程序清单中的库即可。这将告诉系统将库的代码包含在包的 class 加载程序中。
https://developer.android.com/guide/topics/manifest/uses-library-element
对于任何新的共享库,都应将其添加到 public.libraries.txt
有关详细信息,请参阅此内容:
https://source.android.com/devices/tech/config/namespaces_libraries