Android JNI 学习(JNI 接口整理 — References Api)

博观而约取,厚积而薄发。这篇文章主要讲述Android JNI 学习:JNI 接口整理 — References Api相关的知识,希望能为你提供帮助。
1. NewGlobalRef(创建全局引用)

jobjectNewGlobalRef(JNIEnv *env, jobject obj);

创建  obj  参数所引用对象的新全局引用。obj  参数既可以是全局引用,也可以是局部引用。全局引用通过调用  DeleteGlobalRef()  来显式撤消。
参数:env:JNI 接口指针。
obj:全局或局部引用。
返回值:返回全局引用。如果系统内存不足则返回  NULL
2. DeleteGlobalRef(删除全局引用)
void DeleteGlobalRef(JNIEnv *env, jobject globalRef);

删除  globalRef  所指向的全局引用。
参数:env:JNI 接口指针。
globalRef:全局引用。
3. NewLocalRef(创建局部引用)
jobject NewLocalRef(JNIEnv *env, jobject ref);  

创建  obj  参数所引用对象的新局部引用。ref  参数既可以是全局引用,也可以是局部引用。全局引用通过调用  DeleteLocalRef()  来显式撤消。
参数:env:JNI 接口指针。
ref:全局或局部引用。
返回值:返回局部引用。如果系统内存不足则返回  NULL
4. DeleteLocalRef(删除局部引用)
void DeleteLocalRef(JNIEnv *env, jobject localRef);

删除  localRef所指向的局部引用。
参数:env:JNI 接口指针。
localRef:局部引用。
5. EnsureLocalCapacity(确保局部引用的容量)
jint EnsureLocalCapacity(JNIEnv *env, jint capacity);  

确保至少给定数量的局部引用能在当前线程被创建。如果创建成功就返回0,否则就会返回一个负数并且抛出OutOfMemoryError异常。
当naitve方法开始运行时,VM会自动保证至少16个局部引用能被创建。
为了兼容,VM会分配超过声明的局部引用数量的内存。
6. NewWeakGlobalRef(创建全局弱引用)
jweak NewWeakGlobalRef(JNIEnv *env, jobject obj);  

创建  obj  参数所引用对象的新全局弱引用。ref  参数既可以是全局引用,也可以是局部引用。全局引用通过调用  DeleteWeakGlobalRef()  来显式撤消。
参数:env:JNI 接口指针。
obj:全局或局部弱引用。
返回值:返回局部引用。如果系统内存不足则返回  NULL
7. DeleteWeakGlobalRef(删除全局弱引用)
void DeleteWeakGlobalRef(JNIEnv *env, jweak obj);

删除 obj  所指向的全局弱引用。
参数:env:JNI 接口指针。
obj:全局弱引用。
【Android JNI 学习(JNI 接口整理 — References Api)】 

    推荐阅读