要为您的应用编译和调试原生代码,您需要以下组件:
- Android 原生开发套件 (NDK):您可以利用这套工具在 Android 应用中使用 C 和 C++ 代码。
- CMake:一款外部编译工具,可与 Gradle 搭配使用来编译原生库。如果您只计划使用 ndk-build,则不需要此组件。
- LLDB:Android Studio 用于调试原生代码的调试程序。默认情况下,LLDB 将与 Android Studio 一起安装。
本页介绍了如何使用 Android Studio 或sdkmanager工具下载和安装这些组件。
安装 NDK 和 CMake
当您安装 NDK 时,Android Studio 会选择最新的 NDK。对于大多数项目,安装此默认版本的 NDK 已经足够。如果您的项目需要一个或多个特定版本的 NDK,您可以下载并配置特定版本。这样做有助于确保在每个项目都依赖于特定版本的 NDK 的情况下,项目之间的编译可重现。Android Studio 会将所有版本的 NDK 安装到 android-sdk/ndk/
目录中。
要在 Android Studio 中安装 CMake 和默认 NDK,请执行以下操作:
- 打开项目后,依次点击 Tools > SDK Manager。
- 点击 SDK Tools 标签页。
- 选中 NDK (Side by side) 和 CMake 复选框。图 1:显示 NDK (Side by side) 选项的 SDK Tools 窗口
注意:如果您在
ndk-bundle
文件夹中安装了 NDK,它会显示在标签为 NDK 的列表中。如果您使用的是 Android Gradle 插件 3.5.0 或更高版本,则可以选中或取消选中该复选框。取消选中该复选框会卸载 NDK,释放磁盘空间,并使该复选框从列表中消失。如果您卸载旧版 NDK,请从项目的local.properties
文件中移除ndk.dir
值,该值现已弃用。
- 点击 OK。
此时系统会显示一个对话框,告诉您 NDK 软件包占用了多少磁盘空间。 - 点击 OK。
- 安装完成后,点击 Finish。
- 您的项目会自动同步编译文件并执行编译。修正发生的所有错误。
安装特定版本的 NDK
要安装特定版本的 NDK,请执行以下操作:
- 打开项目后,依次点击 Tools > SDK Manager。
- 点击 SDK Tools 标签页。
- 选中 Show Package Details 复选框。
- 选中 NDK (Side by side) 复选框及其下方与您要安装的 NDK 版本对应的复选框。Android Studio 会将所有版本的 NDK 安装到
android-sdk/ndk/
目录中。图 2:显示 NDK (Side by side) 选项的 SDK Tools 窗口
注意:如果您在
ndk-bundle
文件夹中安装了 NDK,它会显示在标签为 NDK 的列表中。如果您使用的是 Gradle 3.5 版或更高版本,则可以选中或取消选中该复选框。取消选中该复选框会卸载已安装的 NDK,释放磁盘空间,并使复选框从列表中消失。如果您卸载旧版 NDK,请从项目的local.properties
文件中移除ndk.dir
值,该值现已弃用。
- 点击 OK。
此时系统会显示一个对话框,告诉您 NDK 软件包占用了多少空间。 - 点击 OK。
- 安装完成后,点击 Finish。
- 您的项目会自动同步编译文件并执行编译。修正发生的所有错误。
- 为每个模块配置要使用的 NDK 版本。使用 Android Studio 3.6 或更高版本时,如果您不指定版本,Android Gradle 插件会选择已知兼容的版本。
从命令行安装 NDK
要通过命令行安装一个或多个版本的 NDK,请执行以下操作:
- 使用 sdkmanager 工具查看可用的 CMake 和 NDK 软件包版本:
sdkmanager --list
- 向
sdkmanager
传递要安装的软件包的字符串。 例如,要安装 CMake 和 NDK,请使用以下语法:
sdkmanager --install
"ndk;major.minor.build"
"cmake;major.minor.micro.build"
- 为项目中的每个模块配置要使用的 NDK 版本。
在项目中配置特定版本的 NDK
如果您安装特定版本的 NDK 并希望在模块中使用它,请使用模块的 build.gradle
文件中的 android.ndkVersion
属性进行指定,如以下代码示例所示。
android {
ndkVersion "major.minor.build"
}