美文网首页
jni 编程要点

jni 编程要点

作者: _喝喝酒吹吹风_ | 来源:发表于2021-01-02 13:33 被阅读0次

Android JNI(一)——NDK与JNI基础

JNI开发流程的步骤

第1步:在Java中先声明一个native方法
第2步:编译Java源文件javac得到.class文件
第3步:通过javah -jni命令导出JNI的.h头文件
第4步:使用Java需要交互的本地代码,实现在Java中声明的Native方法(如果Java需要与C++交互,那么就用C++实现Java的Native方法。)
第5步:将本地代码编译成动态库(Windows系统下是.dll文件,如果是Linux系统下是.so文件,如果是Mac系统下是.jnilib)
第6步:通过Java命令执行Java程序,最终实现Java调用本地代码。

作用域

JNI接口指针仅在当前线程中起作用

JNIEnv是什么?

JNIEnv是一个线程相关的结构体,该结构体代表了Java在本线程的执行环境

JNIEnv和JavaVM的区别:
  • JavaVM:JavaVM是Java虚拟机在JNI层的代表,JNI全局仅仅有一个
  • JNIEnv:JavaVM 在线程中的代码,每个线程都有一个,JNI可能有非常多个JNIEnv;
JNIEnv的作用:
  • 调用Java 函数:JNIEnv代表了Java执行环境,能够使用JNIEnv调用Java中的代码
  • 操作Java代码:Java对象传入JNI层就是jobject对象,需要使用JNIEnv来操作这个Java对象
native 方法的注册
  • 静态注册:本地方法名为java的方法名+包名路径

  • 动态注册:可以自定义关联
    JNI_OnLoad

JNI规范中定义了三种引用
refrence

JNI开发之方法签名与Java通信(二)

相关文章

  • jni 编程要点

    Android JNI(一)——NDK与JNI基础[https://www.jianshu.com/p/87ce6...

  • JNI

    Android JNI编程—JNI基础 一天掌握Android JNI本地编程 快速入门 Android深入理解J...

  • 音视频从基础学起——JNI编程

    音视频开发的运用,是要学习JNI编程的。怎么样去学JNI?本篇我们就来学习JNI编程这门技术。 对于Java来说,...

  • JNI 入门

    基础知识 1 什么是JNI?JNI全称为:Java Native Interface。JNI 是本地编程接口,它使...

  • Java与CC++交互JNI编程

    JNI编程 [TOC] JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如...

  • JNI编程

    JNI编程[TOC] JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C...

  • JNI 编程

    JNI编程 JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C+...

  • JNI

    JNI编程 JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C+...

  • Android安全---AndroidStudio3.0JNI编

    JNI介绍 官方介绍: 在编程领域,JNI (Java Native Interface,Java本地接口)是一种...

  • Android 添加JNI 开发能力

    JNI 与 NDK 区别JNI:JNI是一套编程接口,用来实现Java代码与本地的C/C++代码进行交互;NDK:...

网友评论

      本文标题:jni 编程要点

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