作者:阳阳的微薄之歌 | 来源:互联网 | 2023-10-11 19:37
篇首语:本文由编程笔记#小编为大家整理,主要介绍了混合编程jni 第九篇之Jni总结相关的知识,希望对你有一定的参考价值。
系列目录:【混合编程Jni】 系列目录_香菜聊游戏的博客-CSDN博客
动态库的加载
可以使用标准 System.loadLibrary 从共享库加载原生代码。
关于参数传递
int、char 等这样的基本数据类型,在本地代码和JVM之间进行复制传递,
而对象是引用传递的。每一个引用都包含一个指向JVM中相应的对象的指针,
但本地代码不能直接使用这个指针,必须通过引用来间接使用。
局部引用和全局引用
传递给原生方法的每个参数,以及 JNI 函数返回的几乎每个对象都属于“局部引用”。
这意味着,局部引用在当前线程中的当前原生方法运行期间有效。
在原生方法返回后,即使对象本身继续存在,该引用也无效。
这适用于 jobject 的所有子类,包括 jclass、jstring 和 jarray。(启用扩展的 JNI 检查时,运行时会针对大部分引用误用问题向您发出警告。)
获取非局部引用的唯一方法是通过 NewGlobalRef 和 NewWeakGlobalRef 函数。
如果您希望长时间保留某个引用&#x