JNI的数据类型和类型签名
2017-02-20 22:56
204 查看
JNI的数据类型跟Java一样,都分为基本数据类型和引用数据类型,基本类型主要有jboolean、jchar、jint等,学过java的都知道,就是在原来java的基本数据类型前添加了一个“j”,
JNI中的引用类型主要有类、对象和数组,他们和java中的引用类也差不多
JNI的类型签名标识了一个特定的Java类型,这个类型既可以是类和方法,也可以是数据类型
类的签名很简单,他采用“L+包名+类名+;”的形式,只需要将其中的.替换为/就行了,比如java.lang.String,他的签名是Ljava/lang/String;,注意末尾的“;”也是签名的一部分
基本数据类型的签名采用一系列大写字母来表示
除了boolean和long外,其他的都是Java类型的首字母大写。之所以他们例外,是因为boolean和long都被占用了,B被byte占用,L表示类的签名;
如果是数组签名可能复杂些,他的签名是[+类型签名,比如int数组,他的类型为int,而int的签名为I,所以int数组的签名是[I,
同理:
char[] [C
float[] [F
double[] [D
long[] [J
String[] [Ljava/lang/String;
Object[] [Ljava/lang/Object;
方法签名为(参数类型签名)+返回值类型签名,比如boolean func1(int a,double b,int[] c),根据参数类型的签名连载一起是ID[I,整个方法的签名是(ID[I),加上返回值就是(ID[I)Z
int func1() 他的签名为()I
void func1(int i) 它的签名为(I)V
boolean func1(int a,String b,int[] c) 它的签名就是(ILjava/lang/String;[I)Z
以上就是JNI 的数据类型和类型签名,当JNI中调用Java上层的API的时候,在JNI的表现形式就是这个样子了。
JNI中的引用类型主要有类、对象和数组,他们和java中的引用类也差不多
JNI的类型签名标识了一个特定的Java类型,这个类型既可以是类和方法,也可以是数据类型
类的签名很简单,他采用“L+包名+类名+;”的形式,只需要将其中的.替换为/就行了,比如java.lang.String,他的签名是Ljava/lang/String;,注意末尾的“;”也是签名的一部分
基本数据类型的签名采用一系列大写字母来表示
除了boolean和long外,其他的都是Java类型的首字母大写。之所以他们例外,是因为boolean和long都被占用了,B被byte占用,L表示类的签名;
如果是数组签名可能复杂些,他的签名是[+类型签名,比如int数组,他的类型为int,而int的签名为I,所以int数组的签名是[I,
同理:
char[] [C
float[] [F
double[] [D
long[] [J
String[] [Ljava/lang/String;
Object[] [Ljava/lang/Object;
方法签名为(参数类型签名)+返回值类型签名,比如boolean func1(int a,double b,int[] c),根据参数类型的签名连载一起是ID[I,整个方法的签名是(ID[I),加上返回值就是(ID[I)Z
int func1() 他的签名为()I
void func1(int i) 它的签名为(I)V
boolean func1(int a,String b,int[] c) 它的签名就是(ILjava/lang/String;[I)Z
以上就是JNI 的数据类型和类型签名,当JNI中调用Java上层的API的时候,在JNI的表现形式就是这个样子了。
相关文章推荐
- JNI中数据类型及签名类型
- 【转】对于JNI方法名,数据类型和方法签名的一些认识
- 对于JNI方法名,数据类型和方法签名的一些认识
- Jni的数据类型和类型签名
- JNI笔记 - 数据类型、JNI函数与签名
- Android中关于JNI 的学习(二)对于JNI方法名,数据类型和方法签名的一些认识
- Android JNI学习系列1.2—— JNI方法名,数据类型和方法签名的一些认识
- JNI数据类型和签名(Signatures)
- 对于JNI方法名,数据类型和方法签名
- JNI和NDK编程(三)JNI的数据类型和类型签名
- Android中关于JNI 的学习(二)对于JNI方法名,数据类型和方法签名的一些认识
- Android有关JNI 学习(两)为JNI方法名称,数据类型和方法签名的一些知识
- 【转】对于JNI方法名,数据类型和方法签名的一些认识
- JNI里的数据类型 和签名方法
- JNI 数据类型转换
- Android JNI入门第五篇——基本数据类型使用
- 基于 Android NDK 的学习之旅-----JNI 数据类型
- NDK 之 JNI数据类型
- 技术转载:Jni学习二:JNI 数据类型
- Android JNI入门第五篇——基本数据类型使用