使用Android中的系统共享库



在Android中,PackageManager类具有函数getSharedLibraries,该函数返回构建在操作系统中的共享库列表。

我想做的是通过反射使用其中一个库,以便调用一些功能。

在某些背景下,我将来将在AOSP中实现我自己的系统库,但目前正在尝试测试如何实现上述功能。

在我构建的Android中,有一个名为android.ext.services的系统共享库,我正在使用它进行测试。我已经尝试通过System.loadLibrary("android.ext.services")加载,但这会抛出UnsatisfiedLinkError

为了加载android.ext.services库并通过反射访问它,我缺少什么?

我遇到了各种各样的来源,这在某种程度上意味着我的项目中必须有一份本地的图书馆副本,尽管我不明白为什么我不能从操作系统中获得。

事实证明,您所需要做的就是在应用程序清单中链接库。这将告诉系统在包的类加载器中包含库的代码。

https://developer.android.com/guide/topics/manifest/uses-library-element

对于任何新的共享库,都应该将其添加到public.libraries.txt 中

有关更多信息,请参阅此:

https://source.android.com/devices/tech/config/namespaces_libraries

最新更新