2) JNI签名:
类型签名 | Java 类型 | 类型签名 | Java 类型 |
Z | boolean | [ | [] |
B | byte | [I | int[] |
C | char | [F | float[] |
S | short | [B | byte[] |
I | int | [C | char[] |
J | long | [S | short[] |
F | float | [D | double[] |
D | double | [J | long[] |
L | fully-qualified-class(全限定的类) | [Z | boolean[] |
l 基本类型
以特定的大写字母表示
l 引用类型
Java对象以L开头,然后以“/”分隔包的完整类型,例如String的签名为:Ljava/lang/String;
在Java里数组类型也是引用类型,数组以[ 开头,后面跟数组元素类型的签名,例如:int[] 签名就是[I ,对于二维数组,如int[][] 签名就是[[I,object数组签名就是[Ljava/lang/Object;
l 方法签名
(参数1类型签名参数2类型签名参数3类型签名.......)返回值类型签名
注意:
函数名,在签名中没有体现出来
参数列表相挨着,中间没有逗号,没有空格
返回值出现在()后面
如果参数是引用类型,那么参数应该为:L类型;
如果函数没有返回值,也要加上V类型
例如:
Java方法 | 对应签名 |
boolean isLedOn(void) ; | ()Z |
void setLedOn(int ledNo); | (I) |
String substr(String str, int idx, int count); | (Ljava/lang/String;II)Ljava/lang/String |
char fun (int n, String s, int[] value); | (ILjava/lang/String;[I)C |
boolean showMsg(View v, String msg); | (Landroid/View;Ljava/lang/String;)Z |
Java方法 | 对应签名 |
boolean isLedOn(void) ; | ()Z |
void setLedOn(int ledNo); | (I) |
String substr(String str, int idx, int count); | (Ljava/lang/String;II)Ljava/lang/String |
char fun (int n, String s, int[] value); | (ILjava/lang/String;[I)C |
boolean showMsg(View v, String msg); | (Landroid/View;Ljava/lang/String;)Z |