2012-05-09 48 views
2

我有一个应用程序具有共享库和使用共享库的小型可执行文件。Android获取JNI库dir

小executalbe(〜2kB)在资产中,我将它写入缓存目录,通过调用Context.getCacheDir()可以获得该缓存目录。在使用ProcessBuilder开始处理之前,我可以通过将LD_LIBRARY_PATH=/data/data/my.app.package/lib加入环境来启动我的小型可执行文件。

  1. 有没有更好的方法来设置库路径?

  2. 有没有办法让库目录没有硬编码呢?

回答

3

设置通过ProcessBuilder.environment()库路径似乎合理的,我的,你可以通过调用Context.getApplicationInfo得到库目录():

ApplicationInfo info = getApplicationInfo(); 
Log.i(TAG, "native library dir = " + info.nativeLibraryDir); 
+0

能否请你告诉我什么是正是这个目录?是在其他应用程序之间共享的,还是每个应用程序都是私人的?卸载应用程序时它会被删除吗? –