JNI的方法命名規則
對於初學者來說,JNI開發,生成的JNI方法,都是通過調用javah命令來生成的。
但是寫的多了,可以發現其實也是有規律可尋的。
下面就簡單說下JNI的方法命名規則;
1.前綴: Java_
2.類的全限定名,用下划線進行分隔(_):com_lms_jni_JniTest
3.方法名:getTestString
比如java的一個在com.my.example包里的一個MyTest類里的一個getHelloWorld()方法
那么他對應的jni方法名是:
Java_com_my_example_MyTest_getHelloWorld
JNI的方法簽名
首先列出java數據類型與簽名類型的對應關系:
Java類型 類型簽名
boolean Z
byte B
int I
char C
short S
long L
float F
double D
void V
數組 [類型簽名,比如int[] 是[I
類 L全限定名;,比如String, 其簽名為Ljava/lang/String;(注意后面有個分號)
對一個方法,其簽名就是其參數類型簽名和返回值類型簽名的字符串,舉例個例子,一目了然。
方法例子1:
public void example1(int string, double index)
對應簽名:
(ID)V
方法例子2:
public string example2(String string, int index)
對應簽名:
(Ljava/util/String;I)Ljava/util/String;
方法例子3:
public int example3(int index, String value,int[] arr)
對應簽名:
(ILjava/util/String;[I)I
看了上面的3個例子,應該就都清楚了吧。