我有一个应用程序,它有一个共享库和一个使用共享库的小型可执行文件。
小的executalbe(~2kB)在资产中,我将其写入缓存目录,可通过调用Context.getCacheDir()
获得。在使用LD_LIBRARY_PATH=/data/data/my.app.package/lib
开始此过程之前,我可以通过将ProcessBuilder
放入环境来启动我的小型可执行文件。
有没有更好的方法来设置库路径?
有没有办法在没有硬编码的情况下获取库目录?
答案 0 :(得分:3)
通过ProcessBuilder.environment()设置库路径对我来说似乎很合理,你可以通过调用Context.getApplicationInfo()来获取库目录:
ApplicationInfo info = getApplicationInfo();
Log.i(TAG, "native library dir = " + info.nativeLibraryDir);