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:全局弱引用。

  • 相关阅读:
    Window 下配置ChromeDriver(简单4步完成)[转]
    selenium之 chromedriver与chrome版本映射表(更新至v2.46)[转]
    学习网站
    如何理解python中的类和方法(转)
    面试题整理20191127
    mysql 慢查询
    python学习--代码组织实例
    ubuntu下安装Matlab
    SkinPP for VC
    C++中的4个类型转换关键字
  • 原文地址:https://www.cnblogs.com/renhui/p/9962238.html
Copyright © 2011-2022 走看看