译NDK入门

Posted oho_yoho

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了译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来安装这些组件:

  1. 打开一个项目,在主菜单上依次选择, select Tools > Android > SDK Manager
  2. 点击 SDK Tools 标签.
  3. 选中LLDB, CMake, and NDK, 旁边的框,如图一所示.

                                                                   图 1. 从SDK Manager安装 LLDB, CMake, 和 NDK.

  4. 点击 Apply, 然后在下个对话框中点击OK.
  5. 安装完成后, 点击 Finish, 然后点击 OK.

创建或导入本地项目


一旦设置Android Studio后,你可以简单的创建一个支持C/C++的项目。然而,如果您要向现有的Android Studio项目添加或导入本地代码,则需要遵循以下基本过程:

  1. 创建新的源文件 并将其添加到你的Android Studio项目。
    • 如果你已有本地代码或想要导入预构建的本地库,则可以跳过此步骤。.
  2. 创建一个CMake构建脚本, 告诉CMake如何将你的本地源构建到库中。 如果要导入并链接到预构建或平台库,则还需要此构建脚本。
    • 如果现有本地库已有CMakeLists.txt构建脚本或使用ndk-build并包含Android.mk构建脚本,则可以跳过此步骤。
  3. 通过提供一个CMake或ndk-build脚本文件路径链接Gradle到你的本地库.

    注意: 如果现有项目使用已过时的ndkCompile工具,则应在配置Gradle使用CMake或ndk-build之前打开你的build.properties文件并删除以下代码行

    // Remove this line
    android
    .useDeprecatedNdk =true
  4. 单击Run 构建和运行你的应用程序。Gradle添加你的CMake或ndk-build进程作为依赖来编译,构建和打包你的本机库与你的APK.

一旦你的应用在物理设备或模拟器上运行,您就可以使用Android Studio调试应用。 否则,要了解有关NDK及其组件的更多信息,请阅读概述页面.

 

以上是关于译NDK入门的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )(代码片段

在Android环境下编译调用c++出现以下错误,大神们这是啥原因呀??我已经配置NDK了。

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

NDK: ant 错误 [javah] Exception in thread "main" java.lang.NullPointerException 多种解决办法(代码片段

Android NDK 入门与实践

在 NDK w/gradle 上编译两个项目,其中一个依赖于另一个的二进制文件