什么是静态注册 静态注册是根据JNI的方法名字来实现与Java方法的映射对应关系。如下所示,方法名的组成是根据JNIEXPORT jstring JNICALL Java_+包名+_类名+_方法名组成。包名直接要用_连接。 JNIEXPORT jstring JNICALL Java_com_co
GetStringUTFChars注意事项 jboolean isCopy = NULL //函数内部复制,isCopy为JNI_TURE,没有复制为JNI_FALSE,不是外部参数所能控制的 char *c_str = (*env)->GetStringUTFChars(env, jstr,
文件加解密 public class Cryptor { public native static void crypt(String normal_path, String crypt_path); public native static void decrypt(Strin
异常处理 1.保证Java代码可以运行 2.补救措施保证C代码继续运行 //JNI自己抛出的异常,在Java层可以被捕捉(需注意是Exception、Throwable或者Error),也可在C层清空 //用户通过ThrowNew抛出的异常,可以在Java层捕捉 JNIEXPORT void
JNI数组处理 传入数组 public class JniTest { public native void giveArray(int[] arr); public static void main(String[] args) { JniTest t = ne
JNI数据类型 jclass和jobject //每个native函数,都至少有两个参数(JNIEnv*, jclass或者jobject) //1)当native方法为静态方法时: //jclass 代表native方法所属类的class对象(JniTest.class) //2)当native方
JNI JNI(Java Native Interface) Java调用C/C++,C/C++调用Java的一套API 1.编写native方法 2.javah命令,生成.h头文件,生成的C/C++的函数声明名称:Java_完整类名_函数名 3.复制.h头文件到C/C++工程中 4.复制jni