如何在Android上单独部署本机库?

时间:2014-06-08 11:30:30

标签: android android-ndk java-native-interface apk

我在项目中遇到缓慢的打包和部署问题。每个架构的本地库大约需要10秒才能打包。

我想加快我的构建和放大部署周期将本机库与包分离,因为本机库的更改不会经常发生。

我的想法是将本机库单独部署到设备,并在没有lib的情况下创建.apk,以减少耗时。

有没有好办法呢?

1 个答案:

答案 0 :(得分:1)

如果您的设备已植根,则可以将库推送到/system/lib(通过adb remount)。现在,Java调用System.loadLibrary("mynative")将透明地加载/system/lib/libmynative.so而不是/data/app-lib/com.my.app/libmynative.so catch:即使文件/data/app-lib/com.my.app/libmynative.so存在,它也会这样做,因此我们必须选择小心的本地库的名称,以便他们不会被系统库(包括最深奥的设备)隐藏,请参阅https://stackoverflow.com/a/11004872/192373

另一方面,您可以将库推送到其他位置,并且 - 直到应用稳定 - 将System.loadLibrary("mynative")替换为System.load("/data/local/tmp/libmynative.so")或您喜欢的任何路径。