`JNI`是`Java Native Interface`的缩写,是`Java`平台的本地调用,从`Java1.1`就成为了`Java`标准的一部分,它允许`Java`代码和其它语言的代码进行互相调用,只要调用约定支持即可,尤其和`C/C++`的互相调用。 ...
分类:
系统相关 时间:
2018-11-25 20:44:17
阅读次数:
220
1 分类Android图片压缩结合多种压缩方式,常用的有尺寸压缩、质量压缩、采样率压缩以及通过JNI调用libjpeg库来进行压缩。 参考此方法:Android-BitherCompress 备注:对于资源图片直接使用:tiny压缩 2 质量压缩(1)原理:保持像素的前提下改变图片的位深及透明度,( ...
分类:
移动开发 时间:
2018-11-25 01:23:29
阅读次数:
261
一、Accessing Static Fields(访问静态域) 1. GetStaticFieldID 返回类的静态域的域 ID。域由其名称和签名指定。GetStatic<type>Field 和 SetStatic<type>Field 访问器函数系列使用域 ID 检索静态域。 GetStati ...
分类:
移动开发 时间:
2018-11-20 00:04:37
阅读次数:
385
https://yq.aliyun.com/articles/5401?spm=a2c4e.11153940.blogcont5402.21.429a25b2u7f5gK https://yq.aliyun.com/articles/5400?spm=a2c4e.11153940.blogcont5 ...
分类:
移动开发 时间:
2018-11-19 22:39:33
阅读次数:
584
一、AllocObject 分配新 Java 对象而不调用该对象的任何构造函数。返回该对象的引用。 clazz 参数务必不要引用数组类。 参数: env:JNI 接口指针。 clazz:Java 类对象。 返回值: 返回 Java 对象。如果无法构造该对象,则返回NULL。 抛出: Instanti ...
分类:
移动开发 时间:
2018-11-19 22:11:40
阅读次数:
243
1.判断对象是否已死的方法可达性分析可作为GCRoots的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性引用的对象。方法区中常量引用的对象。本地方法栈中JNI(即一般说的Native方法)引用的对象。2.垃圾收集算法:标记-清除(MarkSweep)算法:分标记和清除两个阶段,缺点:一是两个阶段效率低,二是产生内存碎片。复制(Copying)算法:把内存平均分为两
分类:
编程语言 时间:
2018-11-19 21:39:48
阅读次数:
210
1. NewGlobalRef(创建全局引用) 创建 obj 参数所引用对象的新全局引用。obj 参数既可以是全局引用,也可以是局部引用。全局引用通过调用 DeleteGlobalRef() 来显式撤消。 参数: env:JNI 接口指针。 obj:全局或局部引用。 返回值: 返回全局引用。如果系统 ...
分类:
移动开发 时间:
2018-11-15 22:31:59
阅读次数:
189
1、入门概念 SWIG支持将C/C++接口封装成其他语言形式,我这里需要转换成JNI (Java)接口。 首先请参考:SWIG官方文档 2、编译命令 这里面参数含义依次为: 目前文件test.i是SWIG的配置文件,其内容大致是这样的: ...
分类:
其他好文 时间:
2018-11-14 16:40:07
阅读次数:
542
本文我们来讨论一下JNI如何将Java类型映射到本机C类型。 一、基本数据类型 如下图表整理了Java基本类型和native对应的关系: 二、引用类型 JNI 包含许多与不同类型的Java对象相对应的引用类型。JNI引用类型按层次结构组织,如图所示: 在C中,所有其他JNI引用类型都定义为与jobj ...
分类:
移动开发 时间:
2018-11-10 22:42:55
阅读次数:
178
本章我们重点说明以下JNI设计的问题,本章中提到的大多数设计问题都与native方法有关。至于调用相关的API的设计,我们会在后面进行介绍。 一、JNI接口函数和指针 native 代码通过调用JNI函数来访问Java VM功能。JNI函数可通过接口指针获得。接口指针是指向指针的指针。该指针指向一个 ...
分类:
移动开发 时间:
2018-11-10 21:18:02
阅读次数:
228