Android Studio 如何安装 NDK 和 CMake

前面的小节我们学习了如何剖析应用性能,接下来几个小结我们学习如何 C/C++ 支持(NDK)方面的知识。本小节学习如何安装 NDK 和 CMake。

1. 概述

我们可以向 Android 项目添加 C 和 C++ 代码,只需将相应的代码添加到项目模块的 cpp 目录中即可。在我们构建项目时,这些代码会编译到一个可由 Gradle 与我们的 APK 打包在一起的原生库中。然后,Java 代码即可通过 Java 原生接口 (JNI) 调用原生库中的函数。

Android Studio 支持适用于跨平台项目的 CMake,以及速度比 CMake 更快但仅支持 Android 的 ndk-build。目前不支持在同一模块中同时使用 CMake 和 ndk-build

要为我们的应用编译和调试原生代码,我们需要以下组件:

  • Android 原生开发套件 (NDK):一个工具集,让我们能够在 Android 项目中使用 C 和 C++ 代码;它提供了各种平台库,让我们能够管理原生 Activity 并访问物理设备组件,例如传感器和轻触输入。

  • CMake:一款外部编译工具,可与 Gradle 搭配使用来编译原生库。如果我们只计划使用 ndk-build,则不需要此组件。

  • LLDB:Android Studio 用于调试原生代码的调试程序。默认情况下,LLDB 将与 Android Studio 一起安装。

2. 安装 NDK 和 CMake

2.1 图形界面安装

当我们安装 NDK 时,Android Studio 会选择最新的 NDK。对于大多数项目,安装此默认版本的 NDK 已经足够。

  1. 打开项目后,依次点击 Tools > SDK Manager

  2. 点击 SDK Tools 标签页;

  3. 选中 NDK (Side by side)CMake 复选框;

  4. 点击 OK,此时系统会显示一个对话框,告诉我们 NDK 软件包占用了多少磁盘空间。

  5. 点击 OK

  6. 安装完成后,点击 Finish

2.2 安装特定版本的 NDK

如果我们的项目需要一个或多个特定版本的 NDK,我们可以下载并配置特定版本。这样做有助于确保在每个项目都依赖于特定版本的 NDK 的情况下,项目之间的编译可重现。Android Studio 会将所有版本的 NDK 安装到 android-sdk/ndk/ 目录中

要安装特定版本的 NDK,请执行以下操作:

  1. 打开项目后,依次点击 Tools > SDK Manager

  2. 点击 SDK Tools 标签页。

  3. 选中 Show Package Details 复选框。

  4. 选中 NDK (Side by side) 复选框及其下方与我们要安装的 NDK 版本对应的复选框。Android Studio 会将所有版本的 NDK 安装到 android-sdk/ndk/ 目录中。

  5. 点击 OK
    此时系统会显示一个对话框,告诉我们 NDK 软件包占用了多少空间。

  6. 点击 OK

  7. 安装完成后,点击 Finish

2.3 命令行安装

要通过命令行安装一个或多个版本的 NDK,请执行以下操作:

  1. 使用 sdkmanager 工具查看可用的 CMake 和 NDK 软件包版本:
sdkmanager --list


2. 向 sdkmanager 传递要安装的软件包的字符串。 例如,要安装 CMake 和 NDK,请使用以下语法:

sdkmanager --install
          "ndk;major.minor.build"
          "cmake;major.minor.micro.build"

3. 配置特定版本的 NDK

如果我们安装特定版本的 NDK 并希望在模块中使用它,请使用模块的 build.gradle 文件中的 android.ndkVersion 属性进行指定,如以下代码示例所示。

android {
    ndkVersion "major.minor.build"
}

4. 小结

本节课程我们主要学习了如何安装 NDK 和 CMake。本节课程的重点如下:

  • 掌握如何安装 NDK 和 CMake;
  • 掌握如何配置特定版本的 NDK。