前面一篇通过简单的例子介绍了android中JNI的使用。这一篇从基础上了解一些Java参数类型与本地参数类型区别。
1)java中的返回值void和JNI中的void是完全对应的哦!(仅仅一个而已)。
2)java中的基本数据类型(byte ,short ,int,long,float,double ,boolean,char-8种)在JNI中对应的数据类型只要在前面加上j就对应了(jbyte ,jshort ,jint,jlong,jfloat,jdouble ,jboolean,jchar)。
3)java中的对象,包括类库中定义的类、接口以及自定义的类接口,都对应于JNI中的jobject。
4)java中基本数据类型的数组对应与JNI中的jarray类型。(type就是上面说的8种基本数据类型)
5)java中对象的数组对应于JNI中的jobjectArray类型。(在java中一切对象、接口以及数组都是对象)
下图是JNI规范中java数据类型和JNI数据类型的映射图。
第一幅为基本数据类型的映射图:
![](https://box.kancloud.cn/2016-01-14_56971f3f4bfc6.gif)
第二幅为引用数据类型的映射图:
![](https://box.kancloud.cn/2016-01-14_56971f3f5ebc3.gif)