在Android中,使用Java中的System.loadLibrary()
加载的库与使用 native 代码中的dlopen()
加载的库之间有区别吗?我可以直接通过JNI
以标准方式在动态加载的库中调用函数,还是必须使用dlsym()
检索函数并创建一堆存根?
答案 0 :(得分:4)
System.loadLibrary()
在Dalvik VM中加载库,dlopen()
只是在您的本机进程中加载库。如果要从Java访问库,则需要编写一些粘合JNI代码。如何实现这些并不重要:您可以直接链接,或使用dlopen()
等。