JNI Interface

| OFFSET | FUNCTION NAME |
| — | — |
|0x00 |void* reserved0;|
|0x04 | void* reserved1;|
|0x08 |void* reserved2;|
|0x0C |void* reserved3;|
|0x10 |jint (GetVersion)(JNIEnv *);|
|0x14 |jclass (
DefineClass)(JNIEnv, const char, jobject, const jbyte,jsize);|
|0x18 |jclass (
FindClass)(JNIEnv, const char);|
|0x1C |jmethodID (FromReflectedMethod)(JNIEnv, jobject);|
|0x20 |jfieldID (FromReflectedField)(JNIEnv, jobject);|
| |jobject (ToReflectedMethod)(JNIEnv, jclass, jmethodID, jboolean);|
|| jclass (GetSuperclass)(JNIEnv, jclass);|
|| jboolean (IsAssignableFrom)(JNIEnv, jclass, jclass); |
|| jobject (ToReflectedField)(JNIEnv, jclass, jfieldID, jboolean);|
|| jint (Throw)(JNIEnv, jthrowable);|
|| jint (ThrowNew)(JNIEnv *, jclass, const char *);|
|| jthrowable (
ExceptionOccurred)(JNIEnv);|
|| void (
ExceptionDescribe)(JNIEnv);|
|| void (
ExceptionClear)(JNIEnv);|
|| void (
FatalError)(JNIEnv, const char);|
|| jint (PushLocalFrame)(JNIEnv, jint);|
|| jobject (PopLocalFrame)(JNIEnv, jobject);|
|| jobject (NewGlobalRef)(JNIEnv, jobject);|
|| void (DeleteGlobalRef)(JNIEnv, jobject);|
|| void (DeleteLocalRef)(JNIEnv, jobject);|
|| jboolean (IsSameObject)(JNIEnv, jobject, jobject);|
|| jobject (NewLocalRef)(JNIEnv, jobject);|
|| jint (EnsureLocalCapacity)(JNIEnv, jint);|
|| jobject (AllocObject)(JNIEnv, jclass);|
|| jobject (NewObject)(JNIEnv, jclass, jmethodID, …);|
|| jobject (NewObjectV)(JNIEnv, jclass, jmethodID, va_list);|
|| jobject (NewObjectA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jclass (
GetObjectClass)(JNIEnv, jobject);|
|| jboolean (
IsInstanceOf)(JNIEnv, jobject, jclass);|
|| jmethodID (
GetMethodID)(JNIEnv, jclass, const char, const char);|
|0x88 |jobject (
CallObjectMethod)(JNIEnv, jobject, jmethodID, …);|
|0x8C |jobject (
CallObjectMethodV)(JNIEnv, jobject, jmethodID, va_list);|
|0x90 |jobject (
CallObjectMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jboolean (CallBooleanMethod)(JNIEnv, jobject, jmethodID, …);|
||jboolean (CallBooleanMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jboolean (CallBooleanMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jbyte (
CallByteMethod)(JNIEnv, jobject, jmethodID, …);|
||jbyte (
CallByteMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jbyte (
CallByteMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jchar (CallCharMethod)(JNIEnv, jobject, jmethodID, …);|
||jchar (CallCharMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jchar (CallCharMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jshort (
CallShortMethod)(JNIEnv, jobject, jmethodID, …);|
||jshort (
CallShortMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jshort (
CallShortMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jint (CallIntMethod)(JNIEnv, jobject, jmethodID, …);|
||jint (CallIntMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jint (CallIntMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jlong (
CallLongMethod)(JNIEnv, jobject, jmethodID, …);|
||jlong (
CallLongMethodV)(JNIEnv, jobject, jmethodID, va_list);|
||jlong (
CallLongMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
||jfloat (CallFloatMethod)(JNIEnv, jobject, jmethodID, …) NDK_FPABI;|
||jfloat (CallFloatMethodV)(JNIEnv, jobject, jmethodID, va_list) NDK_FPABI;|
||jfloat (CallFloatMethodA)(JNIEnv, jobject, jmethodID, jvalue) NDK_FPABI;|
||jdouble (
CallDoubleMethod)(JNIEnv, jobject, jmethodID, …) NDK_FPABI;|
||jdouble (
CallDoubleMethodV)(JNIEnv, jobject, jmethodID, va_list) NDK_FPABI;|
||jdouble (
CallDoubleMethodA)(JNIEnv, jobject, jmethodID, jvalue) NDK_FPABI;|
|0xF4 | void (CallVoidMethod)(JNIEnv, jobject, jmethodID, …);|
|0xF8 | void (CallVoidMethodV)(JNIEnv, jobject, jmethodID, va_list);|
|0xFC | void (CallVoidMethodA)(JNIEnv, jobject, jmethodID, jvalue);|
|| jobject (
CallNonvirtualObjectMethod)(JNIEnv, jobject, jclass, jmethodID, …);|
|| jobject (
CallNonvirtualObjectMethodV)(JNIEnv, jobject, jclass, jmethodID, va_list);|
|| jobject (
CallNonvirtualObjectMethodA)(JNIEnv, jobject, jclass, jmethodID, jvalue);|
|| jboolean (CallNonvirtualBooleanMethod)(JNIEnv, jobject, jclass, jmethodID, …);|
|| jboolean (CallNonvirtualBooleanMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jboolean (CallNonvirtualBooleanMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jbyte (
CallNonvirtualByteMethod)(JNIEnv, jobject, jclass, jmethodID, …);|
|| jbyte (
CallNonvirtualByteMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jbyte (
CallNonvirtualByteMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jchar (CallNonvirtualCharMethod)(JNIEnv, jobject, jclass,jmethodID, …);|
|| jchar (CallNonvirtualCharMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jchar (CallNonvirtualCharMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jshort (
CallNonvirtualShortMethod)(JNIEnv, jobject, jclass,jmethodID, …);|
|| jshort (
CallNonvirtualShortMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jshort (
CallNonvirtualShortMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jint (CallNonvirtualIntMethod)(JNIEnv, jobject, jclass,jmethodID, …);|
|| jint (CallNonvirtualIntMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jint (CallNonvirtualIntMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jlong (
CallNonvirtualLongMethod)(JNIEnv, jobject, jclass,jmethodID, …);|
|| jlong (
CallNonvirtualLongMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| jlong (
CallNonvirtualLongMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jfloat (CallNonvirtualFloatMethod)(JNIEnv, jobject, jclass,jmethodID, …) NDK_FPABI;|
|| jfloat (CallNonvirtualFloatMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list) NDK_FPABI;|
|| jfloat (CallNonvirtualFloatMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue) NDK_FPABI;|
|| jdouble (
CallNonvirtualDoubleMethod)(JNIEnv, jobject, jclass,jmethodID, …) NDK_FPABI;|
|| jdouble (
CallNonvirtualDoubleMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list) NDK_FPABI;|
|| jdouble (
CallNonvirtualDoubleMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue) NDK_FPABI;|
|| void (CallNonvirtualVoidMethod)(JNIEnv, jobject, jclass,jmethodID, …);|
|| void (CallNonvirtualVoidMethodV)(JNIEnv, jobject, jclass,jmethodID, va_list);|
|| void (CallNonvirtualVoidMethodA)(JNIEnv, jobject, jclass,jmethodID, jvalue);|
|| jfieldID (
GetFieldID)(JNIEnv, jclass, const char, const char);|
|| jobject (
GetObjectField)(JNIEnv, jobject, jfieldID);|
|| 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) NDK_FPABI;|
|| jdouble (
GetDoubleField)(JNIEnv, jobject, jfieldID) NDK_FPABI;|
|| 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) NDK_FPABI;|
|| void (
SetDoubleField)(JNIEnv, jobject, jfieldID, jdouble) NDK_FPABI;|
|| jmethodID (
GetStaticMethodID)(JNIEnv, jclass, const char, const char);|
|| jobject (
CallStaticObjectMethod)(JNIEnv, jclass, jmethodID, …);|
|| jobject (
CallStaticObjectMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|0x1D0| jobject (
CallStaticObjectMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jboolean (CallStaticBooleanMethod)(JNIEnv, jclass, jmethodID, …);|
|| jboolean (CallStaticBooleanMethodV)(JNIEnv, jclass, jmethodID,va_list);|
|| jboolean (CallStaticBooleanMethodA)(JNIEnv, jclass, jmethodID,jvalue);|
|| jbyte (
CallStaticByteMethod)(JNIEnv, jclass, jmethodID, …);|
|| jbyte (
CallStaticByteMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| jbyte (
CallStaticByteMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jchar (CallStaticCharMethod)(JNIEnv, jclass, jmethodID, …);|
|| jchar (CallStaticCharMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| jchar (CallStaticCharMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jshort (
CallStaticShortMethod)(JNIEnv, jclass, jmethodID, …);|
|| jshort (
CallStaticShortMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| jshort (
CallStaticShortMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jint (CallStaticIntMethod)(JNIEnv, jclass, jmethodID, …);|
|| jint (CallStaticIntMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| jint (CallStaticIntMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jlong (
CallStaticLongMethod)(JNIEnv, jclass, jmethodID, …);|
|| jlong (
CallStaticLongMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| jlong (
CallStaticLongMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jfloat (CallStaticFloatMethod)(JNIEnv, jclass, jmethodID, …) NDK_FPABI;|
|| jfloat (CallStaticFloatMethodV)(JNIEnv, jclass, jmethodID, va_list) NDK_FPABI;|
|| jfloat (CallStaticFloatMethodA)(JNIEnv, jclass, jmethodID, jvalue) NDK_FPABI;|
|| jdouble (
CallStaticDoubleMethod)(JNIEnv, jclass, jmethodID, …) NDK_FPABI;|
|| jdouble (
CallStaticDoubleMethodV)(JNIEnv, jclass, jmethodID, va_list) NDK_FPABI;|
|| jdouble (
CallStaticDoubleMethodA)(JNIEnv, jclass, jmethodID, jvalue) NDK_FPABI;|
|| void (CallStaticVoidMethod)(JNIEnv, jclass, jmethodID, …);|
|| void (CallStaticVoidMethodV)(JNIEnv, jclass, jmethodID, va_list);|
|| void (CallStaticVoidMethodA)(JNIEnv, jclass, jmethodID, jvalue);|
|| jfieldID (
GetStaticFieldID)(JNIEnv, jclass, const char,const char);|
|| jobject (
GetStaticObjectField)(JNIEnv, jclass, jfieldID);|
|| jboolean (
GetStaticBooleanField)(JNIEnv, jclass, jfieldID);|
|| jbyte (
GetStaticByteField)(JNIEnv, jclass, jfieldID);|
|| jchar (
GetStaticCharField)(JNIEnv, jclass, jfieldID);|
|| jshort (
GetStaticShortField)(JNIEnv, jclass, jfieldID);|
|| jint (
GetStaticIntField)(JNIEnv, jclass, jfieldID);|
|| jlong (
GetStaticLongField)(JNIEnv, jclass, jfieldID);|
|| jfloat (
GetStaticFloatField)(JNIEnv, jclass, jfieldID) NDK_FPABI;|
|| jdouble (
GetStaticDoubleField)(JNIEnv, jclass, jfieldID) NDK_FPABI;|
|| void (
SetStaticObjectField)(JNIEnv, jclass, jfieldID, jobject);|
|| void (
SetStaticBooleanField)(JNIEnv, jclass, jfieldID, jboolean);|
|| void (
SetStaticByteField)(JNIEnv, jclass, jfieldID, jbyte);|
|| void (
SetStaticCharField)(JNIEnv, jclass, jfieldID, jchar);|
|| void (
SetStaticShortField)(JNIEnv, jclass, jfieldID, jshort);|
|| void (
SetStaticIntField)(JNIEnv, jclass, jfieldID, jint);|
|| void (
SetStaticLongField)(JNIEnv, jclass, jfieldID, jlong);|
|| void (
SetStaticFloatField)(JNIEnv, jclass, jfieldID, jfloat) NDK_FPABI;|
|| void (
SetStaticDoubleField)(JNIEnv, jclass, jfieldID, jdouble) NDK_FPABI;|
|| jstring (
NewString)(JNIEnv, const jchar, jsize);|
|| jsize (GetStringLength)(JNIEnv, jstring);|
|| const jchar* (GetStringChars)(JNIEnv, jstring, jboolean);|
|| void (
ReleaseStringChars)(JNIEnv, jstring, const jchar);|
|| jstring (NewStringUTF)(JNIEnv, const char);|
|| jsize (
GetStringUTFLength)(JNIEnv, jstring);|
|| const char
(GetStringUTFChars)(JNIEnv, jstring, jboolean);|
|| void (
ReleaseStringUTFChars)(JNIEnv, jstring, const char);|
|| jsize (GetArrayLength)(JNIEnv, jarray);|
|| jobjectArray (NewObjectArray)(JNIEnv, jsize, jclass, jobject);|
|| jobject (GetObjectArrayElement)(JNIEnv, jobjectArray, jsize);|
|| void (SetObjectArrayElement)(JNIEnv, jobjectArray, jsize, jobject);|
|| jbooleanArray (NewBooleanArray)(JNIEnv, jsize);|
|| jbyteArray (NewByteArray)(JNIEnv, jsize);|
|| jcharArray (NewCharArray)(JNIEnv, jsize);|
|| jshortArray (NewShortArray)(JNIEnv, jsize);|
|| jintArray (NewIntArray)(JNIEnv, jsize);|
|| jlongArray (NewLongArray)(JNIEnv, jsize);|
|| jfloatArray (NewFloatArray)(JNIEnv, jsize);|
|| jdoubleArray (NewDoubleArray)(JNIEnv, jsize);|
|| jboolean* (GetBooleanArrayElements)(JNIEnv, jbooleanArray, jboolean);|
|| jbyte
(GetByteArrayElements)(JNIEnv, jbyteArray, jboolean);|
|| jchar
(GetCharArrayElements)(JNIEnv, jcharArray, jboolean);|
|| jshort
(GetShortArrayElements)(JNIEnv, jshortArray, jboolean);|
|| jint
(GetIntArrayElements)(JNIEnv, jintArray, jboolean);|
|| jlong
(GetLongArrayElements)(JNIEnv, jlongArray, jboolean);|
|| jfloat
(GetFloatArrayElements)(JNIEnv, jfloatArray, jboolean);|
|| jdouble
(GetDoubleArrayElements)(JNIEnv, jdoubleArray, jboolean);|
|| void (
ReleaseBooleanArrayElements)(JNIEnv, jbooleanArray,jboolean, jint);|
|| void (ReleaseByteArrayElements)(JNIEnv, jbyteArray,jbyte, jint);|
|| void (
ReleaseCharArrayElements)(JNIEnv, jcharArray,jchar, jint);|
|| void (ReleaseShortArrayElements)(JNIEnv, jshortArray,jshort, jint);|
|| void (
ReleaseIntArrayElements)(JNIEnv, jintArray,jint, jint);|
|| void (ReleaseLongArrayElements)(JNIEnv, jlongArray,jlong, jint);|
|| void (
ReleaseFloatArrayElements)(JNIEnv, jfloatArray,jfloat, jint);|
|| void (ReleaseDoubleArrayElements)(JNIEnv, jdoubleArray,jdouble, jint);|
|| 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);|
|| 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);|
|| jint (
RegisterNatives)(JNIEnv, jclass, const JNINativeMethod,jint);|
|| jint (UnregisterNatives)(JNIEnv, jclass);|
|| jint (MonitorEnter)(JNIEnv, jobject);|
|| jint (MonitorExit)(JNIEnv, jobject);|
|| jint (GetJavaVM)(JNIEnv, JavaVM*);|
|| void (
GetStringRegion)(JNIEnv, jstring, jsize, jsize, jchar);|
|| void (GetStringUTFRegion)(JNIEnv, jstring, jsize, jsize, char);|
|| void
(GetPrimitiveArrayCritical)(JNIEnv, jarray, jboolean);|
|| void (
ReleasePrimitiveArrayCritical)(JNIEnv, jarray, void, jint);|
|| const jchar* (GetStringCritical)(JNIEnv, jstring, jboolean);|
|| void (
ReleaseStringCritical)(JNIEnv, jstring, const jchar);|
|| jweak (NewWeakGlobalRef)(JNIEnv, jobject);|
|| void (DeleteWeakGlobalRef)(JNIEnv, jweak);|
|| jboolean (ExceptionCheck)(JNIEnv);|
|| jobject (NewDirectByteBuffer)(JNIEnv, void, jlong);|
|| void
(GetDirectBufferAddress)(JNIEnv, jobject);|
|| jlong (GetDirectBufferCapacity)(JNIEnv, jobject);|
|| jobjectRefType (GetObjectRefType)(JNIEnv, jobject);|