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数据手册
其中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数据手册
相关文章推荐
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android基础之Jni开发流程详解(雷惊风)
- Android的NDK开发(3)——JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)——JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- Android的NDK开发(3)————JNI数据类型的详解
- JNI数据类型的详解--Android的NDK开发(3)
- Android的JNI数据类型的详解