您的位置:首页 > 移动开发 > Android开发

Android开发--JNI基础类型详解

2013-05-04 11:31 567 查看
1、原始数据类型的匹配:



其中jni中的本地类型都是以j开头,可以在c/c++中直接和c/C++类型互通互换!

2.复杂数据类型的匹配



几种复合数据类型,主要是字符串jstring和数组jarray。注意jni中复合数据类型不能直接转换为c/C++中相应的类型,

需要调用jni中自带的相应的方法来操作!

3.域描述符,分为原始数据类型的域描述符,和引用类型的域描述符。原始数据类型的域描述符如下图:



对于引用类型的域描述符,其以L开始,以;结束。对于数组,其为[+其类型的域描述符+;

比如:String类型的域描述符为Ljava/lang/String;int[]类型的域描述符为[I;Object[]类型的域描述符为[Ljava/lang/Object;

3.3 方法描述符

方法描述符,将参数类型的域描述符按照申明顺序放入一对括号中后跟返回值类型的域描述符。对于,没有返回值的,用V表示。看下面一组例子:

String test(); ----------------------------->()Ljava/lang/String; 详解:()中表示方法参数,最右边表示方法的返回数据类型

int f(int i, Object j);---------------------->(ILjava/lang/Object;)I 详解:()中表示方法参数,参数之间不需要有分割符号,最右边表示方法的返回数据类型

set(byte[] bs);---------------------------->([B;)V 详解:()中表示方法参数,,最右边表示方法的返回数据类型

参考来源:JNI数据手册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: