JNI GetFieldID和GetMethodID 所需签名参数

调用JNI的GetMethodID函数获取一个jmethodID时,需要传入一个方法名称和方法签名,方法名称就是在Java中定义的方法名,方法签名的格式为:(形参参数类型列表)返回值。

1。基本类型签名

Java     Native     Signature 
byte     jbyte     B
char     jchar     C
double     jdouble     D
float     jfloat     F
int     jint     I
short     jshort     S
long     jlong     J
boolean     jboolean     Z
void     void     V


2.引用数据类型的转换.

Java     Native     Signature
所有对象 jobject     L+classname +;
Class     jclass     Ljava/lang/Class;
String     jstring      Ljava/lang/String;
Throwable  jthrowable  Ljava/lang/Throwable;
Object[] jobjectArray [L+classname +;
byte[]   jbyteArray [B
char[] jcharArray [C
double[]  jdoubleArray  [D
float[] jfloatArray  [F
int[]   jintArray [I
short[] jshortArrsy [S
long[]  jlongArray [J
boolean[]  jbooleanArray  [Z

获取签名方式:

一、自己拼写
例如:

方法:int (int param);

签名:(I)I

二、命令行生成

1、使用javac,生成对应java文件的class文件;

2、使用 javap -s -p  命令获取对应签名信息,如图:

JNI GetFieldID和GetMethodID 所需签名参数_第1张图片

 

你可能感兴趣的:(android)