1 版本和类操作API
2 对象域相关API 2.1 GetFieldID jfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig); 函数作用: 2.2 Set<type>Field void Set<type>Field(JNIEnv *env, jobject obj, jfieldID fieldID, NativeType value); 函数作用: <type>可以是Boolean、Char等类型,所有的Set<type>Field参考下面的函数: void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject);
void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean);
void (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte);
void (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar);
void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort);
void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint);
void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong);
void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat);
void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble);
2.3 Get<type>Field NativeType Get<type>Field(JNIEnv *env, jobject obj, jfieldID fieldID); 函数作用: <type>可以是Boolean、Char等类型,所有的Get<type>Field参考下面的函数 jboolean (*GetBooleanField)(JNIEnv*, jobject, jfieldID); jbyte (*GetByteField)(JNIEnv*, jobject, jfieldID); jchar (*GetCharField)(JNIEnv*, jobject, jfieldID); jshort (*GetShortField)(JNIEnv*, jobject, jfieldID); jint (*GetIntField)(JNIEnv*, jobject, jfieldID); jlong (*GetLongField)(JNIEnv*, jobject, jfieldID); jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID); jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID);
3 字符串操作API
4 数组常用API 4.1 GetArrayLength jsize (*GetArrayLength)(JNIEnv*, jarray); 函数作用:返回数组中的元素数。
4.2 GetObjectArrayElement jobject (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize); 函数作用:返回 Object 数组的元素。
4.3 SetObjectArrayElement void (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject); 函数作用:设置 Object 数组的元素。
4.4 Get<PrimitiveType>ArrayRegion void Get<PrimitiveType>ArrayRegion(JNIEnv *env, ArrayType array, jsize start, jsize len, NativeType *buf); 函数作用: <PrimitiveType>可以是Boolean、Char等类型,所有的Get<PrimitiveType>ArrayRegion参考下面的函数: void (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray, jsize, jsize, jboolean*);
void (*GetByteArrayRegion)(JNIEnv*, jbyteArray, jsize, jsize, jbyte*);
void (*GetCharArrayRegion)(JNIEnv*, jcharArray, jsize, jsize, jchar*);
void (*GetShortArrayRegion)(JNIEnv*, jshortArray, jsize, jsize, jshort*);
void (*GetIntArrayRegion)(JNIEnv*, jintArray, jsize, jsize, jint*);
void (*GetLongArrayRegion)(JNIEnv*, jlongArray, jsize, jsize, jlong*);
void (*GetFloatArrayRegion)(JNIEnv*, jfloatArray, jsize, jsize, jfloat*);
void (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray, jsize, jsize, jdouble*);
4.5 Set<PrimitiveTyep>ArrayRegion void Set<PrimitiveType>ArrayRegion(JNIEnv *env, ArrayType array, jsize start, jsize len, NativeType *buf);
<PrimitiveType>可以是Boolean、Char等类型,所有的Set<PrimitiveType>ArrayRegion参考下面的函数: void (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray, jsize, jsize, const jboolean*);
void (*SetByteArrayRegion)(JNIEnv*, jbyteArray, jsize, jsize, const jbyte*);
void (*SetCharArrayRegion)(JNIEnv*, jcharArray, jsize, jsize, const jchar*);
void (*SetShortArrayRegion)(JNIEnv*, jshortArray, jsize, jsize, const jshort*);
void (*SetIntArrayRegion)(JNIEnv*, jintArray, jsize, jsize, const jint*);
void (*SetLongArrayRegion)(JNIEnv*, jlongArray, jsize, jsize, const jlong*);
void (*SetFloatArrayRegion)(JNIEnv*, jfloatArray, jsize, jsize, const jfloat*);
void (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray, jsize, jsize, const jdouble*);
更详细内容,请参考“JNI完全手册” |
|