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

  • 相关阅读:
    ssh认证
    Nginx中proxy_pass 后有无/的区别
    Nginx中$http_host、$host、$proxy_host的区别
    Nginx读书笔记----HTTP proxy module
    ngx_http_core_module模块提供的变量
    Nginx读书笔记三----资源分配
    http_code 413 Request Entity Too Large
    nginx读书笔记二----nginx配置
    firewall-cmd命令
    GCC编译器原理(一)03------GCC 工具:gprof、ld、libbfd、libiberty 和libopcodes
  • 原文地址:https://www.cnblogs.com/renhui/p/9962238.html
Copyright © 2011-2022 走看看