2013-11-09 18 views
6

我希望我的Android应用程序根据设备的功能在运行时下载.so文件(由我编译的本机库),所以apk的大小将会很小,因为我不会填充许多不同版本的apk的本地图书馆。在Android中放置下载的本机库的最佳地点是什么?

我找不到合适的地方去下载这个库。这个的首选和推荐目录在哪里所以我可以使用System.loadLibrary函数来快速和安全地加载它

+0

你有没有成功与Rager的建议做到这一点? – joelsand

+0

@joelsand我最终做了应用程序的多APK版本,即使它有时是一个耗时的操作... – frankish

回答

2

如果你解压一个apk,你会发现在根目录下有一个文件夹lib。该目录也存在于您的应用程序目录/data/data/package.name/lib中,作为与/data/app-lib/package.name的符号链接。如果你真的想在运行时下载本地库,其中之一是你必须放置它们的地方。

由于应用程序可以获得对其自己的数据目录的写入权限,因此您应该可以实际下载文件。 ContextWrapper.getFilesDir()将返回路径/data/data/package.name,以便您不要对其进行硬编码。

要小心这个 - 自己做本地代码更新可能比它的价值更多的问题。如果您真的想要安全,请考虑能够在应用程序中下载和运行任意本机代码的含义。

相关问题