我的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端可能更容易,但我不想使用它,因为它不允许我卸载库。