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

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

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

最佳答案

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

关于android - dlopen 和 System.loadLibrary() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624618/

相关文章:

android - 如何在没有 Android Studio 的情况下启动 Android 设备文件资源管理器?

android - CursorAdapter.swapCursor 第一次没有刷新

java - 生成的 JAR 文件 - 发生 JNI 错误

exception - CSipSimple 抛出异常 JNI 在应用程序中检测到错误,输入无效修改后的 UTF-8 : illegal start byte 0x8e

android - flutter应用开发中的依赖问题

c++ - Android NDK 中的 pthread_cancel() 替代方案?

android - 如何使用原生库

android - SQLcipher(不同版本)在一个平台上工作,但在另一个平台上崩溃

java - 使用java native 接口(interface)获取Windows当前用户

android - 如何从其他类调用 onCreate 方法?