android ndk学习

动态注册和线程

2021-10-18  本文已影响0人  大旺旺的弟弟小旺旺

Jni_Onload
as开发ndk安装的工具sdktool:

动态注册和静态注册

操作步骤:
写一个对应关系,然后在onLoad中进行注册
有参数需要写环境和实例参数,如果没有参数则不需要。


JavaVM *_vm;
static const char *className = "com/kangwang/javacallc/bean/People";
/**
 * NDK返回
 * 运行的时候第一个调用的函数就是这个函数
 * @param vm
 * @param r
 * @return
 */
int JNI_Onlod(JavaVM *vm,void *re){
    //一般作为初始化
    JNINativeMethod method[] = {
            {"javaMethod","()v","nativiemathod"}
    };
    _vm = vm;
    JNIEnv *env = 0;
    int r = vm->GetEnv((void**)&env,JNI_VERSION_1_6);
    if (r<0){
//        失败
        return -1;
    }

    jclass xc = env->FindClass(className);
    // 动态注册
    env->RegisterNatives(xc,method,sizeof(method)/sizeof(JNINativeMethod));
    return JNI_VERSION_1_6;
}
上一篇 下一篇

猜你喜欢

热点阅读