博观而约取,厚积而薄发。这篇文章主要讲述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)】
推荐阅读
- Cordova - 彻底搞定安卓中的微信支付插件!
- CSAPP(第三章程序的机器级表示2)
- android ncnn
- 安卓基础之主题/样式
- 记录Android开发大牛博客,献给那些Android开发路上学习的人
- Applications Manager应用性能透视能力--Java Web事务监控
- 安卓手机怎么无线投屏电脑()
- Applications Manager Docker监控
- 继续和基准尺寸