zoukankan      html  css  js  c++  java
  • Android 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:全局弱引用。

  • 相关阅读:
    scapy--初识
    python--re(匹配字符串)
    python--pdb
    Fedora 配置
    Ubuntu 18.04 配置
    python--git
    python--os
    day28 Pyhton 面向对象 继承
    day28 Pyhton MRO和C3算法
    数学知识回顾02
  • 原文地址:https://www.cnblogs.com/renhui/p/9962238.html
Copyright © 2011-2022 走看看