在Android上使用dlopen()的正确方法是什么?

时间:2018-04-22 14:17:08

标签: android android-ndk dlopen

我的Android应用程序捆绑了一个共享对象。它位于APK的lib文件夹中。在Android 7上,我可以执行以下操作来加载它:

lib = dlopen("libfoo.so", RTLD_LAZY);

但是,这在Android 4上不起作用。在Android 4上,我必须执行以下操作:

lib = dlopen("/data/data/<my_package_identifier>/lib/libfoo.so", RTLD_LAZY);

在Android上调用/data/data/<id>/lib时,我是否始终必须指定路径dlopen()?我有点担心硬编码路径,但正如我所说,只是传递共享对象的名称在Android 4上不起作用。

我知道使用System.loadLibrary()从Java端可能更容易,但我不想使用它,因为它不允许我卸载库。

0 个答案:

没有答案