需要使用来自第三方的android共享库,该库的soname和文件名相同,格式为libxx.so.1.2.3,在linux上很常见。我将 lib 文件重命名为 libxx.so,并使用 ndk-build 在 libmyjni.so 中链接 libxx.so。在我的 java 代码中,在调用 libmyjni.so 中的函数之前,我像这样加载它们:
System.load("/data/local/tmp/libxx.so.1.2.3");
System.loadLibrary("myjni");
我必须手动将 libxx.so.1.2.3 复制到 /data/local/tmp/。这样效果很好,上面加载后,我可以调用libmyjni.so中的函数。
在代码“System.loadLibrary("myjni");”中,系统总是试图从某个地方获取 libxx.so.1.2.3。我想知道,在现实世界中,如何在安装过程中将 libxx.so.1.2.3 复制到 android 设备上的特定位置?这样我就可以 System.load() 它。
或者android有官方方式将自制的lib安装到/system/lib/?
如果 libxx.so.1.2.3 的格式为 libxx.so,那么我可以使用 System.loadLibrary("xx") 来加载它。