1、Android NDK简介
1.1、什么是NDK
NDK全称是Native Development Kit。NDK是一套允许开发人员将本地代码嵌入Android应用程序包,可以将Android应用程序中的部分功能用C/C++语言来实现,并将这部分C/C++代码编译成可直接运行在Android平台上的本地代码。这些本地代码以so链接库的形式存在,并能自动将so和java应用一起打包成apk。通俗来说,就是NDK允许开发人员用C/C++开发Android程序。
1.2、Android NDK运行机制
- Java代码运行机制:
Java代码→Class文件→ByteCode(字节码文件)→Dex(运行在虚拟机上的可执行文件)
- C/C++代码运行机制:
C代码→.o目标文件→So链接库
下面为Android四层结构简图,看Java代码运行在App
层,C/C++代码运行在Linux内核
层
1.3、Android NDK优缺点及使用场景
- 优点:
- Native代码执行效率高
- 反编译难度大,保密性好
- 可以直接接触底层系统
- Native代码嵌入式平台移植性好
- 方便使用各种开源库(很多底层的开源库都是用的C/C++代码编写的,比如视频解码库ffmpeg、图像处理算法等)
- 缺点:
- 调用步骤繁琐
- 互调过程开销较大
- 需要处理资源分配与释放
- 要了解的知识更多(熟练使用C/C++、有一定的Linux使用经验)
- 使用场景:
- 编写Android驱动
- 对执行效率有高要求
- 对底层系统或一些Native开源库有依赖
- 对代码的保密性要求高
2、环境配置
首先,我们要下载NDK需要到Android Studio中下载。
2.1、Android Studio的配置
2.2、Windows手动配置NDK环境变量
- 配置环境变量(此处以Windows10为例)
- 在Cortana中输入关键字环境变量,如下图所示,点击编辑系统环境变量选项打开系统属性选窗口,单击下方环境变量按钮,打开环境变量窗口。
- 单击系统变量下方的新建按钮
- 如下图所示,变量名输入NDK_ROOT,然后单击浏览目录按钮,定位至刚才NDK下载位置(在SDK目录下),然后单击确定按钮。
- 双击Path变量,增加%NDK_ROOT%项,然后一路单击确定按钮关闭打开的窗口。
- 在Cortana中输入关键字环境变量,如下图所示,点击编辑系统环境变量选项打开系统属性选窗口,单击下方环境变量按钮,打开环境变量窗口。
- 验证配置是否成功,打开cmd或powershell(这里用的powershell),输入ndk-build,如下所示,表示配置成功。