Android JNI(三)——NI數據類型和類型描述符

原文鏈接:https://blog.csdn.net/afei__/article/details/80986203

jni開發中,java數據類型並不是直接在jni使用,

基本數據類型

java數據類型 jni 本地類型 c/c++ 數據類型 數據類型描述
boolean Jboolean unsigned char C/C++無符號八位整數
byte 同上 signed char C/C++有符號8位整數
char 同上 unsigned short C/C++無符號16位整數
short 同上 signed short C/C++有符號16位整數
int 同上 signed int C/C++有符號32位整數
long 同上 signed long C/C++有符號64位整數
float 同上 float C/C++32位浮點數
double 同上 double C/C++64位浮點數

引用數據類型 網上查

數據類型描述符

jvm虛擬機中,存儲數據類型的名稱時,是使用指定的描述符來存儲,而不是我們習慣的int float

  1. 示例

3.1 例如我們要表示一個 String 類

Java 類型:java.lang.String
JNI 描述符:Ljava/lang/String;
即一個 Java 類對應的描述符,就是 L 加上類的全名,其中 . 要換成 / ,最後 不要忘掉末尾的分號。

3.2 假如我們想要表示數組的話

Java 類型:String[]
JNI 描述符:[Ljava/lang/String;
Java 類型:int[][]
JNI 描述符:[[I
數組就是簡單的在類型描述符前加 [ 即可,二維數組就是兩個 [ ,以此類推。

3.3 方法

Java 方法:long f (int n, String s, int[] arr);
JNI 描述符:(ILjava/lang/String;[I)J
Java 方法:void f ();
JNI 描述符:()V
括號內是每個參數的類型符,括號外就是返回值的類型符。

————————————————

原文鏈接:https://blog.csdn.net/afei__/article/details/80899758

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章