【译】NDK入门
翻译自官网Getting Started with the NDK
NDK入门
文档包含以下内容
本地开发包(NDK)是一个可以在安卓开发中使用C和C++代码的一个工具集合,你可以使用它提供的 平台库 来管理本地操作和访问物理设备组件,例如传感器和触摸输入。NDK不适合大多数新手Android程序员,他们只需要使用java代码和Framework API来开发app。然后,如果你的情况适合一下原因,NDK将会变的非常有用。
- 设备发挥最大性能,以实现低延迟或运行计算密集型应用,如游戏或物理模拟.
- 重用自己或别人开发的C或C++库.
使用Android Studio 2.2及以上版本,你可以使用NDK把C和C++代码编译成一个本地库,以及使用Gradle把本地库打包到你的APK中,IDE集成了编译系统。你的Java代码通过Java本地接口(Jni)框架调用本地库中的函数。要学习更多关于Gradle和Android编译系统,阅读构建配置。
Android Studio的默认编译本地库的工具是CMake。Android Studio也支持ndk-build ,因为大量已存在的项目使用了编译工具包。然而,如果你是在新创建一个本地库,你应该使用CMake.
这个指南给你准备使用NDK以及在Android Studio上使用NDK并运行提供信息,如果你没有最新版本的Android Studio,请现在下载并安装.
注意: 如果你不想使用 Android Studio,你可以通过设置Eclipse使用NDK。然而,我们建议迁移到最新版本Android Studio去支持安卓开发、Eclipse的ADT插件将不再提供支持.
实验Gradle的用户注意:请考虑使用 2.2.0版本插件或更高的版本,如果以下有任何一项适合你可以使用CMake或ndk-build编译你的本地库:你的本地项目已经使用了CMake或ndk-build;你比较愿意使用一个稳定版本的Gradle编译系统;或者你想支持附加工具,如 CCache;否则,你可以继续使用实验版本的Gradle以及Android插件 .
下载NDK和工具
在APP中要编译和调试本地代码, 你需要以下组件:
- Android本地开发包(NDK):允许在Androi中使用C和C++代码的工具集.
- CMake:一个外部构建工具, 与Gradle一起构建你的本地库
- LLDB: 调试软件, Android Studio 使用它来调试本地代码.
你可以使用You can install these components SDK Manager来安装这些组件:
- 打开一个项目,在主菜单上依次选择, select Tools > Android > SDK Manager
- 点击 SDK Tools 标签.
- 选中LLDB, CMake, and NDK, 旁边的框,如图一所示.
- 点击 Apply, 然后在下个对话框中点击OK.
- 安装完成后, 点击 Finish, 然后点击 OK.
创建或导入本地项目
一旦设置Android Studio后,你可以简单的创建一个支持C/C++的项目。然而,如果您要向现有的Android Studio项目添加或导入本地代码,则需要遵循以下基本过程:
- 创建新的源文件 并将其添加到你的Android Studio项目。
- 如果你已有本地代码或想要导入预构建的本地库,则可以跳过此步骤。.
- 创建一个CMake构建脚本, 告诉CMake如何将你的本地源构建到库中。 如果要导入并链接到预构建或平台库,则还需要此构建脚本。
- 如果现有本地库已有
CMakeLists.txt
构建脚本或使用ndk-build并包含Android.mk
构建脚本,则可以跳过此步骤。
- 如果现有本地库已有
- 通过提供一个CMake或ndk-build脚本文件路径链接Gradle到你的本地库.
注意: 如果现有项目使用已过时的
ndkCompile
工具,则应在配置Gradle使用CMake或ndk-build之前打开你的build.properties
文件并删除以下代码行// Remove this line
android.useDeprecatedNdk =true - 单击Run 构建和运行你的应用程序。Gradle添加你的CMake或ndk-build进程作为依赖来编译,构建和打包你的本机库与你的APK.
一旦你的应用在物理设备或模拟器上运行,您就可以使用Android Studio调试应用。 否则,要了解有关NDK及其组件的更多信息,请阅读概述页面.