从另一个Android应用程序加载本机共享库

vit*_*kot 5 android android-ndk

我需要分发一个应用程序(播放器),该应用程序依赖于为给定ARM版本和扩展(Tegra,Neon)构建的本机库。这个本地库很大,因此我不能在一个通用包中分发所有版本。因此,我决定将应用程序分成一个小的通用.apk和更专业的.apks –无需任何活动的插件。

如何从主主机应用程序访问插件应用程序中的专用本机共享库?是否可以简单地使用

System.loadLibrary("path_to_library"); 
Run Code Online (Sandbox Code Playgroud)

如果是这样,我如何获得该库的路径?

在不可能的情况下如何解决这个问题?

Ren*_*ate 1

System.loadLibrary()获取库名称并以某种方式将其映射到完整路径。

foo => libfoo.so

系统通常会检查apk本身,然后通常/system/lib/

如果您有完整路径,请使用System.load()

无论如何,管理库的位置都会很麻烦,除非它位于 apk 中或与所有系统库一起。

我只是将特定的库与 apk 一起打包。