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 学习(五):References Api的更多相关文章
-
Android JNI学习(五)——Demo演示
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
-
Android JNI学习(四)——JNI的常用方法的中文API
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
-
Android JNI学习(三)——Java与Native相互调用
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
-
Android JNI学习(二)——实战JNI之“hello world”
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
-
Android JNI 学习(一):JNI 简介
JNI 即 Java Native Interface 是 native 编程接口,它允许在Java虚拟机(VM)内运行Java代码与其他编程语言(主要是C和C++)编写的应用程序和库进行交互操作. ...
-
Android JNI 学习(十一):Invocation Api
1. 简介 Invocation API允许软件提供商在原生程序中内嵌Java虚拟机.因此可以不需要链接任何Java虚拟机代码来提供Java-enabled的应用程序. 以下代码演示如何使用: #in ...
-
Android JNI 学习(十):String Operations Api &; Other Apis
一.String Operations(字符串操作) 1. NewString jstring NewString(JNIEnv *env, const jchar *unicodeChars, js ...
-
Android JNI 学习(六):Object Operations Api
一.AllocObject jobjectAllocObject(JNIEnv *env, jclass clazz); 分配新 Java 对象而不调用该对象的任何构造函数.返回该对象的引用. cla ...
-
Android JNI 学习(四):接口方法表 &; Base Api &; Exception Api
本文我们来总结一下JNI 提供的功能列表及相关的函数表. 注意:请注意使用术语“必须”来描述对JNI程序员的限制.例如,当您看到某个JNI函数必须接收非NULL对象时,您有责任确保不将NULL传递给该 ...
随机推荐
-
关于对CSS尺寸单位'em'的长期误解
一直以来认为'em'是相对于父元素的字体大小. 直到今天学习移动WEB开发,重新复习css的尺寸大小时,惊奇发现:对em深深的误解了!!! 在CSS官网对em的解释实例是: a. h1{line-he ...
-
MVC编写的新闻页面
1.新闻发布系统 2.架构确立 3.数据表确立 4.分层 entity dao BaseDao sqlserver jar包 接口层(NewsDetailDAO) impl (NewsDetailDA ...
-
Django1.9开发博客(7)- 实现功能
到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...
-
自动备份sqlexpress 数据库脚本
Create PROCEDURE [dbo].[usp_BackupDatabase] @databaseName sysname,@backupPath nvarchar(255), @backup ...
-
ODI中web service介绍
ODI WS架构
-
java.text.NumberFormat使用方法
NumberFormat 是全部数值格式的抽象基类. 该类提供了格式化和分析数值的接口. NumberFormat 也提供了确定 哪个语言环境具有数值格式以及它们名字的方法. package com. ...
-
如何给PDF文件制作书签
书本阅读的时候我们有时候会制作一些漂亮的书签,那么电子文档也是有书签的,要怎么制作小伙伴们都知道吗?应该会有许多的小伙伴还不知道,今天就为大家分享一下电子文件如何添加书签的.就以PDF这个现在常用的电 ...
-
Lintcode489-Convert Array List to Linked List-Easy
489. Convert Array List to Linked List Convert an array list to a linked list. Example Example 1: In ...
-
DocumentManager在标签位置显示气泡框 z
关于DevExpress DockManager下的DocumentManager头部标签如何显示气泡框,类似Visual studio那样显示文件的路径,如下图所示,------- 方式很简单,从工 ...
-
如何在linux下实现mysql数据库每天自动备份
建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: ...