6
我希望我的Android应用程序根据设备的功能在运行时下载.so文件(由我编译的本机库),所以apk的大小将会很小,因为我不会填充许多不同版本的apk的本地图书馆。在Android中放置下载的本机库的最佳地点是什么?
我找不到合适的地方去下载这个库。这个的首选和推荐目录在哪里所以我可以使用System.loadLibrary函数来快速和安全地加载它?
我希望我的Android应用程序根据设备的功能在运行时下载.so文件(由我编译的本机库),所以apk的大小将会很小,因为我不会填充许多不同版本的apk的本地图书馆。在Android中放置下载的本机库的最佳地点是什么?
我找不到合适的地方去下载这个库。这个的首选和推荐目录在哪里所以我可以使用System.loadLibrary函数来快速和安全地加载它?
如果你解压一个apk,你会发现在根目录下有一个文件夹lib
。该目录也存在于您的应用程序目录/data/data/package.name/lib
中,作为与/data/app-lib/package.name
的符号链接。如果你真的想在运行时下载本地库,其中之一是你必须放置它们的地方。
由于应用程序可以获得对其自己的数据目录的写入权限,因此您应该可以实际下载文件。 ContextWrapper.getFilesDir()
将返回路径/data/data/package.name
,以便您不要对其进行硬编码。
要小心这个 - 自己做本地代码更新可能比它的价值更多的问题。如果您真的想要安全,请考虑能够在应用程序中下载和运行任意本机代码的含义。
你有没有成功与Rager的建议做到这一点? – joelsand
@joelsand我最终做了应用程序的多APK版本,即使它有时是一个耗时的操作... – frankish