之前写过一篇比较水的文章Android手机控制电脑撸出HelloWorld
里面用到了JNI/NDK技术。
这篇文章给大家介绍下JNI/NDK开发。采用的是Android Studio2.2开发环境,使用CMake方式进行开发。
JNI(Java Native Interface)是java与C/C++进行通信的一种技术,使用JNI技术,可以java调用C/C++的函数对象等等,Android中的Framework层与Native层就是采用的JNI技术。
我们知道,Android系统是基于linux开发,采用的是linux内核 ,Android APP开发大部分也要和系统打交道,只是Android FrameWork 帮我们处理了和系统相关的操作, 我们从Android 系统的分成结构可以看出,Android FrameWork是通过JNI与底层的C/C++库交互,例如:FreeType,OpenGL,SQLite,音视频等等。
如果我们程序也需要调用自己的C/C++函数库,就必须用到JNI/NDK开发。
NDK配置(最新的CMake方式)
Android Studio2.2版本已经完全支持ndk开发了。而且默认采用CMake方式。(传统方式不过多介绍了)
CMake的优势
- 可以直接的在C/C++代码中加入断点,进行调试
- java引用的C/C++中的方法,可以直接ctrl+左键进入
- 对于include的头文件,或者库,也可以直接的进入
- 不需要配置命令行操作,手动的生成头文件,不需要配置
android.useDeprecatedNdk=true
属性
下载
首先需要下载NDK,来到设置界面点击下载NDK
安装完NDK,还可以选择配置一些工具。
- CMake: 外部构建工具。如果你准备只使用 ndk-build 的话,可以不使用它。(Android Studio2.2默认采用CMake)
- LLDB: Android Studio上面调试本地代码的工具。