dlopen 和 System.loadLibrary() 的区别

Qin*_* He 1 java-native-interface android dlopen android-ndk

在Android中,是有图书馆之间的差异使用加载System.loadLibrary()Java和使用库加载dlopen()本地代码?我可以直接通过标准方式调用动态加载库中的函数JNI,还是必须使用dlsym()并创建一堆存根来检索函数?

Nik*_*kov 5

System.loadLibrary()在 Dalvik VM 中加载一个库,dlopen()只需在您的本机进程中加载​​该库。如果您想从 Java 访问您的库,您需要编写一些胶水 JNI 代码。如何实现这些并不重要:您可以直接链接,或使用dlopen()等。