5

我希望我的 Android 应用程序在运行时根据设备的功能下载一个 .so 文件(我编译的本机库),因此 apk 的大小会很小,因为我不会用许多不同版本的 apk 填充本机库。

我想不出下载这个库的正确位置。这个首选和推荐的目录在哪里所以我可以使用 System.loadLibrary 函数快速安全地加载它

4

1 回答 1

2

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

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

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

于 2013-12-16T18:48:01.040 回答