美文网首页
Android开发十三《JNI和NDK编程》

Android开发十三《JNI和NDK编程》

作者: 独自闯天涯的码农 | 来源:发表于2022-03-27 15:59 被阅读0次
Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C、C++等本地代码所封装的一层接口。
NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便的通过JNI来访问本地代码。NDK还提供了交叉编译器。
优点:

1、提高代码的安全性;
2、可以方便的使用目前已有的C/C++开源库;
3、便于平台间的移植;
4、提高程序某些特定情形下的执行效率。

一、JNI的开发流程

1、在Java中声明native方法

2、编译Java源文件得到class文件,然后通过javah命令导出JNI的头文件;

3、实现JNI方法;

4、编译so库并在Java中调用;

二、NDK的开发流程

1、下载并配置NDK

2、创建一个Android项目,并声明所需的native 方法;

3、实现Android项目中所声明的native方法;

4、切换到jni目录的父目录,然后通过ndk-build命令编译产生so库;

三、JNI的数据类型和类型签名

1、JNI数据类型包含两种:基本类型和引用类型

2、类型签名:L+包名+类名+;将其中的“.”替换为“/”;

比如:java.lang.String,它的签名:Ljava/lang/String;

四、JNI调用Java方法的流程

1、JNI调用Java方法的流程是

  1. 先通过类名找到类;
  2. 再根据方法名找到方法的id;
  3. 最后就可以调用这个方法了。

如果调用的是Java中的非静态方法,那么需要构造出类的对象后才能调用;

参考:Android JNI(一)——NDK与JNI基础

相关文章

网友评论

      本文标题:Android开发十三《JNI和NDK编程》

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