动态注册和线程

作者: 大旺旺的弟弟小旺旺 | 来源:发表于2021-10-18 08:34 被阅读0次

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

  • CMake:编译工具
  • LLDB:调试

动态注册和静态注册

  • 比如我们签名的两个案例都是动态注册的方式实现的,通过Java+包名+类型+方法名匹配以后函数或者方法
  • 动态注册:比如我们在ndk的jni中写个方法和我们java代码中的某个方法联系起来

操作步骤:
写一个对应关系,然后在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;
}

相关文章

  • 动态注册和线程

    Jni_Onloadas开发ndk安装的工具sdktool: CMake:编译工具 LLDB:调试 动态注册和静态...

  • jni学习笔记

    主要涉及知识点 1.JNI_OnLoad2.动态注册和静态注册3.多线程4.在子线程中回调java方法 代码

  • BroadcastReceiver

    概念:Android四大组件之一,没有可视化界面,用于不同组件和多线程之间的通信。 目录静态注册和动态注册的区别A...

  • BroadcastReceiver工作过程

    注册过程(分析动态注册) 广播注册分为静态注册和动态注册。 静态注册的广播在应用安装时由系统自动完成注册,即由PM...

  • tp5注册路由规则

    注册路由规则 路由注册可以采用方法动态单个和批量注册,也可以直接定义路由定义文件的方式进行集中注册。 动态注册 路...

  • Android 第六讲 广播接收器和服务

    1.广播的定义 特点 2.接受系统广播 两种方式:静态注册和动态注册动态注册: 1)动态注册:需要定义一个继承自B...

  • JNI静态注册和动态注册

    JNI开发看似简单,但是初学者,通过搜索引擎东拼西凑的资料来写代码,几乎一定会踩坑,比方内存泄露,引用泄漏以及各种...

  • BroadcastReceiver动态注册,发送和接收流程分析与

    broadcast的注册分为动态注册和静态注册,静态注册由PackageManagerService完成,动态注册...

  • 二、JNI函数动态注册和静态注册

    JNI函数的注册:将Java层的native函数和JNI层对应的实现函数关联起来。 一、动态注册 1、函数动态注册...

  • Android广播监听网络状态

    1.先说一下广播,广播分为两种:静态广播和动态广播。静态广播即是静态注册的,而动态广播是代码动态注册。静态注册是通...

网友评论

    本文标题:动态注册和线程

    本文链接:https://www.haomeiwen.com/subject/dfgioltx.html