JNI开发系列目录
博客创建时间:2020.10.28
博客更新时间:2022.9.19
以Android studio 4.0.2来分析讲解,gradle=6.1.1,如图文和网上其他资料不一致,可能是别的资料版本较低而已
Native Development Kit, Android的一个工具开发包。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件。
NDK能帮助开发者快速开发C、 C++的动态库,将动态库编译成.so文件供Java调用,并支持将.so和应用一起打包成 apk。
为什么要使用NDK?
注意:
NDK
,它会增大开发过程的复杂性。NDK
是属于 Android 的,与Java并无直接关系NDK为了方便使用,提供了一些脚本,使得更容易的编译C/C++代码。在Android程序编译中会将C/C++编译成动态库.so,类似java库.jar文件一样,它的生成需要使用NDK工具来打包。如对.so文件如何生成感兴趣,请阅读我的另一文章 《Android Studio 4.0.+NDK .so库生成打包》
so是shared object的缩写,见名思义就是共享的对象,机器可以直接运行的二进制代码。大到操作系统,小到一个专用软件,都离不开so,so主要存在于Unix和Linux系统中。实质so文件就是一堆C、C++的头文件和实现文件打包成一个库。
JNI的全称是Java Native Interface,即本地Java接口。因为 Java 具备跨平台的特点,所以Java 与 本地代码交互的能力非常弱。采用JNI特性可以增强 Java 与本地代码交互的能力,使Java和其他类型的语言如C++/C能够互相调用。
对于JNI的深入学习,请查阅另一篇博文《Android JNI的深度进阶学习》
注意:
JNI
是 Java 调用 Native 语言的一种特性,Java与C/C++交互JNI
是属于 Java 的,与 Android 无直接关系,Android程序使用JNI比Java程序使用更简单相关链接:
博客书写不易,您的点赞收藏是我前进的动力,千万别忘记点赞、 收藏 ^ _ ^ !