标签:JNI

JNI和NDK开发之动态注册JNI函数

JNI和NDK开发之动态注册JNI函数

什么是静态注册 静态注册是根据JNI的方法名字来实现与Java方法的映射对应关系。如下所示,方法名的组成是根据JNIEXPORT jstring JNICALL Java_+包名+_类名+_方法名组成。包名直接要用_连接。 JNIEXPORT jstring JNICALL Java_com_co

Joe.Ye Joe.Ye 2023-03-25
0 0 0
Android NDK基础16:JNI注意事项

Android NDK基础16:JNI注意事项

GetStringUTFChars注意事项 jboolean isCopy = NULL //函数内部复制,isCopy为JNI_TURE,没有复制为JNI_FALSE,不是外部参数所能控制的 char *c_str = (*env)->GetStringUTFChars(env, jstr,

Joe.Ye Joe.Ye 2023-02-25
0 0 0
Android NDK基础15:文件加解密_文件合并

Android NDK基础15:文件加解密_文件合并

文件加解密 public class Cryptor { public native static void crypt(String normal_path, String crypt_path); public native static void decrypt(Strin

Joe.Ye Joe.Ye 2023-02-25
0 0 0
Android NDK基础13:JNI异常处理_JNI缓存策略

Android NDK基础13:JNI异常处理_JNI缓存策略

异常处理 1.保证Java代码可以运行 2.补救措施保证C代码继续运行 //JNI自己抛出的异常,在Java层可以被捕捉(需注意是Exception、Throwable或者Error),也可在C层清空 //用户通过ThrowNew抛出的异常,可以在Java层捕捉 JNIEXPORT void

Joe.Ye Joe.Ye 2023-02-25
0 0 0
Android NDK基础12:JNI数组处理_JNI引用变量

Android NDK基础12:JNI数组处理_JNI引用变量

JNI数组处理 传入数组 public class JniTest { public native void giveArray(int[] arr); public static void main(String[] args) { JniTest t = ne

Joe.Ye Joe.Ye 2023-02-25
0 0 0
Android NDK基础11:JNI数据类型_C调用Java

Android NDK基础11:JNI数据类型_C调用Java

JNI数据类型 jclass和jobject //每个native函数,都至少有两个参数(JNIEnv*, jclass或者jobject) //1)当native方法为静态方法时: //jclass 代表native方法所属类的class对象(JniTest.class) //2)当native方

Joe.Ye Joe.Ye 2023-02-25
0 0 0
Android NDK基础10:JNI开发流程_JNIEnv

Android NDK基础10:JNI开发流程_JNIEnv

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

Joe.Ye Joe.Ye 2023-02-25
0 0 0