我希望我的 Android 应用程序在运行时根据设备的特性下载一个 .so 文件(由我编译的本地库),所以 apk 的大小会很小,因为我不会用许多不同的方式填充 apk native 库的版本。
我找不到下载这个库的正确位置。此文件的首选和推荐目录在哪里?这样我就可以使用 System.loadLibrary 函数快速安全地加载它?
最佳答案
如果你解压一个apk,你会看到在根目录下有一个文件夹lib
。此目录也作为指向 /data/app-lib/package.name
的符号链接(symbolic link)存在于您的应用程序目录 /data/data/package.name/lib
中。如果您真的想在运行时下载 native 库,其中之一就是您必须将它们放在哪里。
由于应用程序可以获得对自己的数据目录的写入权限,因此您实际上应该能够在那里下载文件。 ContextWrapper.getFilesDir()
将返回路径 /data/data/package.name
这样您就不会对其进行硬编码。
对此要小心 - 自行更新 native 代码可能会带来更多问题而不是其值(value)。如果您真的想确保安全,请考虑能够在您的应用程序中下载和运行任意 native 代码的含义。
关于android - 将下载的 native 库放在 Android 中的最佳位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19873774/