JNI接口函数
来源:互联网 发布:netstat 查看端口 编辑:程序博客网 时间:2024/06/05 07:53
typedef const struct JNINativeInterface *JNIEnv;
const struct JNINativeInterface … = {
NULL, NULL, NULL, NULL, GetVersion, //获取JNI版本号DefineClass, //通过指定ClassLoader对象加载类FindClass, //获取指定的Class类对象FromReflectedMethod, //通过指定的java.lang.reflect.Method对象获取方法IDFromReflectedField, //通过指定的java.lang.reflect.Field对象获取字段IDToReflectedMethod, //通过指定的方法ID获取java.lang.reflect.Method对象GetSuperclass, //获取指定类的父类IsAssignableFrom, //判断指定类是否继承自某类或实现了某个接口ToReflectedField, //通过指定的字段ID获取java.lang.reflect.Field对象Throw, //抛出指定的Throwable对象ThrowNew, //抛出指定的Throwable对象,并制定消息ExceptionOccurred, //获取未被清空或捕获的异常ExceptionDescribe, //同printStackTrace()ExceptionClear, //清除已被抛出的异常FatalError, //抛出致命错误PushLocalFrame, //Push/PopLocalFrame函数提供了本地引用管理的简便方法,在该函数对之间的代码段,所有创建的显式本地引用无需手动调用DeleteLocalReference函数释放,PopLocalFrame函数会自动释放这些本地引用PopLocalFrame, NewGlobalRef, //创建全局引用,必须被显式清除DeleteGlobalRef, //清除全局引用DeleteLocalRef, //清除本地引用,通常本地引用在原生代码返回时会自动清除,但是对于大数据,比如在循环中频繁创建Java对象,而该对象的只在一次循环中有效,这种情况下有必要显式调用DeleteLocalRef以通知VM尽快释放该对象。IsSameObject, //判断是否为同一对象,可通过该方法判断弱引用是否已被释放(NULL)NewLocalRef, //创建本地引用EnsureLocalCapacity, //确保当前线程可以创建指定数量的本地引用AllocObject, //创建一个新的对象,只分配内存,不调用任何构造方法(cdwang:应该是为了方便通过CallNonvirtual<Type>Method方法调用父类的构造函数初始化对象)NewObject, //通过指定的构造函数创建对象,变长参数形式NewObjectV, //同上,va_list形式NewObjectA, //同上,数组形式GetObjectClass, //获取对象的Class类对象IsInstanceOf, //同instanceOfGetMethodID, //获取实例(非静态)方法的IDCallObjectMethod, //调用实例方法,object表示返回值类型CallObjectMethodV, CallObjectMethodA, CallBooleanMethod, CallBooleanMethodV, CallBooleanMethodA, CallByteMethod, CallByteMethodV, CallByteMethodA, CallCharMethod, CallCharMethodV, CallCharMethodA, CallShortMethod, CallShortMethodV, CallShortMethodA, CallIntMethod, CallIntMethodV, CallIntMethodA, CallLongMethod, CallLongMethodV, CallLongMethodA, CallFloatMethod, CallFloatMethodV, CallFloatMethodA, CallDoubleMethod, CallDoubleMethodV, CallDoubleMethodA, CallVoidMethod, CallVoidMethodV, CallVoidMethodA, CallNonvirtualObjectMethod, //调用非虚实例方法,通过class对象指定调用哪个类的非虚函数(cdwang:应该是某对象不调用自己的构造类的方法实现,而是调用父类的方法实现,这个方法节省了子类对象向父类对象的强制转换)CallNonvirtualObjectMethodV, CallNonvirtualObjectMethodA, CallNonvirtualBooleanMethod, CallNonvirtualBooleanMethodV, CallNonvirtualBooleanMethodA, CallNonvirtualByteMethod, CallNonvirtualByteMethodV, CallNonvirtualByteMethodA, CallNonvirtualCharMethod, CallNonvirtualCharMethodV, CallNonvirtualCharMethodA, CallNonvirtualShortMethod, CallNonvirtualShortMethodV, CallNonvirtualShortMethodA, CallNonvirtualIntMethod, CallNonvirtualIntMethodV, CallNonvirtualIntMethodA, CallNonvirtualLongMethod, CallNonvirtualLongMethodV, CallNonvirtualLongMethodA, CallNonvirtualFloatMethod, CallNonvirtualFloatMethodV, CallNonvirtualFloatMethodA, CallNonvirtualDoubleMethod, CallNonvirtualDoubleMethodV, CallNonvirtualDoubleMethodA, CallNonvirtualVoidMethod, CallNonvirtualVoidMethodV, CallNonvirtualVoidMethodA, GetFieldID, //获取成员字段IDGetObjectField, //获取字段值GetBooleanField, GetByteField, GetCharField, GetShortField, GetIntField, GetLongField, GetFloatField, GetDoubleField, SetObjectField, //设置字段值SetBooleanField, SetByteField, SetCharField, SetShortField, SetIntField, SetLongField, SetFloatField, SetDoubleField, GetStaticMethodID, //获取静态方法IDCallStaticObjectMethod, //调用静态方法CallStaticObjectMethodV, CallStaticObjectMethodA, CallStaticBooleanMethod, CallStaticBooleanMethodV, CallStaticBooleanMethodA, CallStaticByteMethod, CallStaticByteMethodV, CallStaticByteMethodA, CallStaticCharMethod, CallStaticCharMethodV, CallStaticCharMethodA, CallStaticShortMethod, CallStaticShortMethodV, CallStaticShortMethodA, CallStaticIntMethod, CallStaticIntMethodV, CallStaticIntMethodA, CallStaticLongMethod, CallStaticLongMethodV, CallStaticLongMethodA, CallStaticFloatMethod, CallStaticFloatMethodV, CallStaticFloatMethodA, CallStaticDoubleMethod, CallStaticDoubleMethodV, CallStaticDoubleMethodA, CallStaticVoidMethod, CallStaticVoidMethodV, CallStaticVoidMethodA, GetStaticFieldID, //获取静态字段IDGetStaticObjectField, //获取字段值GetStaticBooleanField, GetStaticByteField, GetStaticCharField, GetStaticShortField, GetStaticIntField, GetStaticLongField, GetStaticFloatField, GetStaticDoubleField, SetStaticObjectField, //设置字段值SetStaticBooleanField, SetStaticByteField, SetStaticCharField, SetStaticShortField, SetStaticIntField, SetStaticLongField, SetStaticFloatField, SetStaticDoubleField, NewString, //通过指定Unicode格式字符数组构造Java StringGetStringLength, //获取Unicode字符的长度GetStringChars, //获取字符数组ReleaseStringChars, //通知VM可以释放String和由GetStringChars获取的字符数组NewStringUTF, //通过指定UTF-8格式字符数组构造Java StringGetStringUTFLength, GetStringUTFChars, ReleaseStringUTFChars, GetArrayLength, //获取数组长度NewObjectArray, //通过指定的Class类对象和初始元素初始化一个Java对象数组GetObjectArrayElement, //获取指定索引的对象元素SetObjectArrayElement, //设置指定索引的对象元素NewBooleanArray, //构造基本类型的Java数组NewByteArray, NewCharArray, NewShortArray, NewIntArray, NewLongArray, NewFloatArray, NewDoubleArray, GetBooleanArrayElements, //获取基本类型元素的C数组GetByteArrayElements, GetCharArrayElements, GetShortArrayElements, GetIntArrayElements, GetLongArrayElements, GetFloatArrayElements, GetDoubleArrayElements, ReleaseBooleanArrayElements, //通知VM可以释放Java数组和由前述方法族获取的C数组ReleaseByteArrayElements, ReleaseCharArrayElements, ReleaseShortArrayElements, ReleaseIntArrayElements, ReleaseLongArrayElements, ReleaseFloatArrayElements, ReleaseDoubleArrayElements, GetBooleanArrayRegion, //获取子数组GetByteArrayRegion, GetCharArrayRegion, GetShortArrayRegion, GetIntArrayRegion, GetLongArrayRegion, GetFloatArrayRegion, GetDoubleArrayRegion, SetBooleanArrayRegion, //设置子数组SetByteArrayRegion, SetCharArrayRegion, SetShortArrayRegion, SetIntArrayRegion, SetLongArrayRegion, SetFloatArrayRegion, SetDoubleArrayRegion, RegisterNatives, //映射原生代码UnregisterNatives, MonitorEnter, MonitorExit, GetJavaVM, //获取当前线程关联的VMGetStringRegion, //获取子串GetStringUTFRegion,GetPrimitiveArrayCritical,ReleasePrimitiveArrayCritical,GetStringCritical, // Get/ReleaseStringCritical必须成对出现,语义和Get/ReleaseStringChars一样,但代码段中不能阻塞当前线程,也不能调用任何其他的JNI函数ReleaseStringCritical, NewWeakGlobalRef,DeleteWeakGlobalRef,ExceptionCheck, //判断是否有挂起的异常NewDirectByteBuffer,GetDirectBufferAddress,GetDirectBufferCapacity
};
接口函数:
http://blog.csdn.net/ztp800201/article/details/7351754
http://blog.csdn.net/ztp800201/article/details/7351950
http://blog.csdn.net/ztp800201/article/details/7351957
http://blog.csdn.net/ztp800201/article/details/7351966
转载,如果侵权请通知,将立即删除(仅作资料存储用)
0 0
- JNI接口函数<一>
- JNI接口函数<二>
- JNI接口函数<三>
- JNI接口函数<二>
- JNI接口函数<三>
- JNI接口函数<一>
- JNI接口函数<二>
- JNI接口函数<三>
- JNI接口函数<一>
- JNI接口函数<二>
- JNI接口函数<三>
- android jni接口函数
- JNI接口函数 (1)
- JNI接口函数 (2)
- JNI接口函数 (3)
- JNI接口函数<一>
- JNI接口函数<三>
- JNI接口函数<二>
- oc中常用的占位符
- Sql递归(用with 实现递归查询)
- ARM的栈帧
- Unity3D中常用的数据结构总结与分
- Java Web开发框架对比—Part1—快速原型
- JNI接口函数
- 2.JVM类装载器
- MongoDB Plugin 1.0.4
- Java hashCode() 方法深入理解
- 找出一个数组中重复次数最多的数
- 设计模式(三) 抽象工厂模式
- 自定义下载圆形按钮
- (MFC)查找和替换对话框实例
- Android 网络框架的编写和使用