Android NDK(六):JNI局部引用和全局引用

上一篇博客向大家非常详细的介绍了JNI的字段和方法,想必大家都对JNI与Jvm交互有了更深刻的认识。Android NDK(五):字段和方法

本篇博客内容继续探索JNI,今天要和大家分享的内容是JNI中的引用。大家对引用肯定都不陌生了,我们每天所写的代码不知道有多少引用存在。JNI种的引用又是怎样的呢?一起来看看~

内容会以引用的类型逐一分析,JNI支持三种引用类型,大致分类如下:

 1. 局部引用

 2. 全局引用

 3. 弱引用

 4. 释放引用

局部引用和全局引用具有不同的生命周期,和Java中的一样,当本地方法返回时,局部引用将被自动释放,而全局引用和弱引用需要手动释放。

一、局部引用

大多数JNI函数都会创建局部引用,释放一个局部引用有两种方式:(1)本地方法执行完毕,VM自动回收释放(2)调用DeleteLocalRef手动释放。

局部引用只在创建的当前线程有效,跨线程使用是禁止的。不要在一个线程中穿件局部引用存储到全局引用中,然后到另一个线程去使用。

 

你可能感兴趣的:(Android,Android,NDK)