// // Created by Test on 17/8/12. // #include "cn_cct_lsn9_FileUtils.h" #include <android/log.h> #include <assert.h> #define TAG "Test_JNI" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG,__VA_ARGS__) #define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0]))) //静态注册 JNIEXPORT void JNICALL Java_cn_cct_lsn9_FileUtils_diff (JNIEnv * env, jclass clazz, jstring path, jstring pattern_path, jint file_num){ LOGI("JNI BEGIN"); }
//动态注册 JNIEXPORT void JNICALL nativeDiff(JNIEnv * env, jclass clazz){ LOGI("静态注册函数调用"); } static const JNINativeMethod getMethods[] = { {"nativeDiff","()V",(void *)nativeDiff} }; static int registerNatives(JNIEnv *env){ LOGI("注册方法调用"); jclass clazz; clazz = (*env)->FindClass(env,"cn/cct/lsn9/FileUtils"); if(clazz == NULL){ LOGI("注册方法调用失败"); return JNI_FALSE; } if((*env)->RegisterNatives(env,clazz,getMethods,NELEM(getMethods)) < 0){ LOGI("注册失败"); return JNI_FALSE; } return JNI_TRUE; } JNIEXPORT jint JNI_OnLoad(JavaVM * vm,void *reserved){ LOGI("JNI_OnLoad函数开始调用"); JNIEnv *env = NULL; if((*vm)->GetEnv(vm,(void**) &env,JNI_VERSION_1_4) != JNI_OK){ LOGI("获取env失败"); return -1; } assert(env != NULL); registerNatives(env); return JNI_VERSION_1_4; }