zoukankan      html  css  js  c++  java
  • JNI

    Java侧使用Native方法:

    1.加载对应的JNI库

    2.声明由native修饰的函数

    java 函数找到jni函数的方法

    1.静态注册:先通过函数名,找到后,保存函数指针

    2.动态注册,registerNativeMethods()(在JNI_ONLoad中动态注册)

    JNI层调用Java方法:

      通过JNIEnv调用callVoidMethoid方法

    JNIEvn

    虚拟机在JNI的代表,每个进程只有一个JNIEvn;与线程相关,线程间不能共享JNIEvn

    作用:调用Java函数,操作Java对象

    通过javaVM的attash... 和ditash...分别获取和释放JNIEnv结构体

    jfieldID,jmethodID分别取出java类的成员变量和方法

    垃圾回收

    (**将Java对象的指针赋值给jNI层,该指针的引用计数不会增加)

    JNI提供的三中类型引用:

    全局引用(不会被释放,需要主动释放),本地引用(JNI层函数返回,对象销毁(注意点:最好立即释放)),弱全局引用(使用之前调用)

    JNI中的异常处理

      发生异常后不会中断函数执行。

      提供三种方法处理异常:ExceptionOccured(判断是否有异常发生),ExceptionClear用来清除异常,ThrowNew(向java层抛出异常)

  • 相关阅读:
    两道简单的机试题目
    C#二维数组(矩形数组,交错数组)
    用实例展示left Join,right join,inner join,join,cross join,union 的区别
    React 中的 Redux 详解:
    react 组件通信:
    vue 入门, todoList
    Vue 动画
    vue 框架,入门必看
    koa2 的使用方法:(一)
    git 的使用:
  • 原文地址:https://www.cnblogs.com/jobs1/p/12053760.html
Copyright © 2011-2022 走看看