16、Android NDK-Android强化课程笔记

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优缺点及使用场景

  • 优点:
    1. Native代码执行效率高
    2. 反编译难度大,保密性好
    3. 可以直接接触底层系统
    4. Native代码嵌入式平台移植性好
    5. 方便使用各种开源库(很多底层的开源库都是用的C/C++代码编写的,比如视频解码库ffmpeg、图像处理算法等)
  • 缺点:
    1. 调用步骤繁琐
    2. 互调过程开销较大
    3. 需要处理资源分配与释放
    4. 要了解的知识更多(熟练使用C/C++、有一定的Linux使用经验)
  • 使用场景:
    1. 编写Android驱动
    2. 对执行效率有高要求
    3. 对底层系统或一些Native开源库有依赖
    4. 对代码的保密性要求高

2、环境配置

首先,我们要下载NDK需要到Android Studio中下载。

2.1、Android Studio的配置

2.2、Windows手动配置NDK环境变量

  1. 配置环境变量(此处以Windows10为例
    • 在Cortana中输入关键字环境变量,如下图所示,点击编辑系统环境变量选项打开系统属性选窗口,单击下方环境变量按钮,打开环境变量窗口。
      这里写图片描述
    • 单击系统变量下方的新建按钮
      这里写图片描述
    • 如下图所示,变量名输入NDK_ROOT,然后单击浏览目录按钮,定位至刚才NDK下载位置(在SDK目录下),然后单击确定按钮。
    • 双击Path变量,增加%NDK_ROOT%项,然后一路单击确定按钮关闭打开的窗口。
      这里写图片描述
  2. 验证配置是否成功,打开cmd或powershell(这里用的powershell),输入ndk-build,如下所示,表示配置成功。
    这里写图片描述

2.3、Genymotion的配置

3、初识NDK

3.1、初识NDK项目结构

3.2、NDK使用规范

3.3、动态注册Native函数

4、编写NDK实例

猜你喜欢

转载自blog.csdn.net/chaixingsi/article/details/81561233