JNI的基本类型
目录
| Java Language Type | Native Type | De**s**cription |
| boolean | jboolean | unsigned 8 bits |
| byte | jbyte | signed 8 bits |
| char | jchar | unsigned 16 bits |
| short | jshort | signed 16 bits |
| int | jint | signed 32 bits |
| long | jlong | signed 64 bits |
| float | jfloat | 32 bits |
| double | jdouble | 64 bits |
字符 Java类型 C类型 V void void Z jboolean boolean I jint int J jlong long D jdouble double F jfloat float B jbyte byte C jchar char S jshort short [I jintArray int[] [F jfloatArray float[] [B jbyteArray byte[] [C jcharArray char[] [S jshortArray short[] [D jdoubleArray double[] [J jlongArray long[] [Z jbooleanArray boolean[]JNINativeMethod方法的结构如下:
typedef struct {
const char* name;
const char* signature;
void* fnPtr;
} JNINativeMethod
第一个变量name是Java中函数的名字。
第二个变量signature,用字符串是描述了函数的参数和返回值
第三个变量fnPtr是函数指针,指向C函数。
第二个方法的涵义是:
“()V”
“(II)V”
“(Ljava/lang/String;Ljava/lang/String;)V”
“()” 中的字符表示参数,后面的则代表返回值。例如”()V” 就表示void Func();
“(II)V” 表示 void Func(int, int);
Method Descriptor Java Language Type "()Ljava/lang/String;" String f(); "(ILjava/lang/Class;)J" long f(int i, Class c); "([B)V" String(byte[] bytes);
参考文章:http://hi.baidu.com/zhlg_hzh/blog/item/f0d782081f2f45d963d986f5.html