我在项目中遇到缓慢的打包和部署问题。每个架构的本地库大约需要10秒才能打包。
我想加快我的构建和放大部署周期将本机库与包分离,因为本机库的更改不会经常发生。
我的想法是将本机库单独部署到设备,并在没有lib的情况下创建.apk,以减少耗时。
有没有好办法呢?
答案 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")
或您喜欢的任何路径。