基于 Android NDK 的学习之旅-----JNI 数据类型

2014-11-24 10:24:40 · 作者: · 浏览: 0

经典老套流程,学编程语言东西,先学它最基础的数据类型,JNI也是如此。JNI 定义了一系列基本数据类型和引用数据类型与java想对应。


1、基本数据类型


下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。



随便观察就能发现,其实就基本数据类型而已,JNI基本数据类型只是比Java基本数据类型前多了个’j’而已


当然,JNI中还有个Java中没有的jsize,定义如下:


typedef jint jsize;


其实jsize整型是用来描述基本指标和大小,没有什么神秘的。


2、引用数据类型


JNI 引用类型 与 Java 的对应关系 如下树层次图:



跟java一样,jobject 是所有引用类型的 父亲。看看是不是很容易理解 ?呵呵.关于jthrowable,JNI也是有线程概念的.


3、 The jvalue Type


Jvalue 是基本数据类型和引用数据类型的集合,它的定义如下:


typedef union jvalue {


jboolean z;


jbyte b;


jchar c;


jshort s;


jint i;


jlong j;


jfloat f;


jdouble d;


jobject l;


}jvalue;