dlopen和System.loadLibrary()之间的区别

时间:2012-07-24 05:23:54

标签: android android-ndk java-native-interface dlopen

在Android中,使用Java中的System.loadLibrary()加载的库与使用 native 代码中的dlopen()加载的库之间有区别吗?我可以直接通过JNI以标准方式在动态加载的库中调用函数,还是必须使用dlsym()检索函数并创建一堆存根

1 个答案:

答案 0 :(得分:4)

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