Android Studio NDK开发与调试所需配置及其使用

  很多人习惯于Eclipse或源码环境下开发JNI应用,但是随着越来越多的Android开发者转战于Android Studio,使用Android Studio作NDK开发将越来越多,下面是笔者查找资料所做的笔记吧!

概念介绍

  JNI: JNI 的本意是Java Native Inteface的缩写,即Java本地接口,是Java中为了方便Java调用C/C++等本地代码所封装的一层接口。
  NDK: NDK 是 Native Development Kit的缩写,是Google在Android开发中提供的一套用于快速创建native工程的一个工具集合。使用NDK可以很方便的编写和调试JNI的代码,此外NDK还提供了交叉编译器,开发人员只需要简单地修改mk文件就可以生成特定CPU平台的动态库。
  CMake: 一款外部构建工具,可与 Gradle 搭配使用来构建原生库。如果您只计划使用 ndk-build,则不需要此组件。
  LLDB: LLDB是一个高效的c/c++的调试器,是与LLVM编译器一起使用,提供了丰富的流程控制和数据检测,有效的帮助我们调试程序。Android Studio中也可以使用LLDB调试NDK程序,配合gradle-experimental插件一起调试NDK项目(Android Studio1.3版本已添加gradle-experimental插件),会更加的方便。

配置所需组件

  下载安装步骤如下:
  1、Android Studio中在打开的项目中,菜单栏中选择Tools->Android->SDK Manager。
  Android Studio NDK开发与调试所需配置及其使用_第1张图片
  
  2、选中SDK Tools标签,分别选中Cmake、LLDB和NDK。
  Android Studio NDK开发与调试所需配置及其使用_第2张图片
  
  3、点击Apply,然后在弹出对话框中点击OK,会看到我们所选择安装的组件,之后选中Accept即可,等待安装完成。
  Android Studio NDK开发与调试所需配置及其使用_第3张图片
  

创建支持C/C++的原生项目

  创建支持原生代码的项目,与创建其他Android Studio项目类似,只是需要额外添加一些支持:
  1、需要选中 Include C++ Support。
  2、在Customize C++ Support部分,可以选择使用下列选项自定义项目:
   C++ Standard:使用下拉列表选择您希望使用哪种 C++ 标准。选择 Toolchain Default 会使用默认的 CMake 设置。
   Exceptions Support:如果您希望启用对 C++ 异常处理的支持,请选中此复选框。如果启用此复选框,Android Studio 会将 -fexceptions 标志添加到模块级 build.gradle文件的 cppFlags中,Gradle 会将其传递到 CMake。
   Runtime Type Information Support:如果您希望支持 RTTI,请选中此复选框。如果启用此复选框,Android Studio 会将 -frtti 标志添加到模块级 build.gradle文件的 cppFlags中,Gradle 会将其传递到 CMake。
  
  创建完成后可以看到,新的项目与以前的相比,多了cppExternal Build Files组。
  1、cpp组中,您可以找到属于项目的所有原生源文件、标头和预构建库。对于新项目,Android Studio 会创建一个示例 C++ 源文件 native-lib.cpp,并将其置于应用模块的 src/main/cpp/ 目录中。本示例代码提供了一个简单的 C++ 函数 stringFromJNI(),此函数可以返回字符串“Hello from C++”。
  2、External Build Files 组中,您可以找到 CMake 或 ndk-build 的构建脚本。与 build.gradle 文件指示 Gradle 如何构建应用一样,CMake 和 ndk-build 需要一个构建脚本来了解如何构建您的原生库。对于新项目,Android Studio 会创建一个 CMake 构建脚本 CMakeLists.txt,并将其置于模块的根目录中。

NDK调试

  Android Studio默认情况下是不支持NDK调试的,要支持NDK调试,需要做一些简单的配置,步骤如下:。
  1、所需配置的LLDB组件上文已下载过,此时选中app->右键打开弹出框,选中Open Module Settings->进入Project Structure界面->设置Jni Debuggabletrue
  Android Studio NDK开发与调试所需配置及其使用_第4张图片
  
  2、选中Run->点击Edit Configurations,进入Run/Debug Configurations界面,点击左上角加号,新建一个Android App,名字可以使用默认的Unnamed,也可以写其他,笔者使用的是app-native,选中General标签,设置Moduleapp,然后选中Debugger标签,设置Debug typeNative 即可。
  Android Studio NDK开发与调试所需配置及其使用_第5张图片
  
  3、完成NDK调试配置,可以使用NDK调试对支持原生代码的项目进行调试运行,设置一个新的断点,然后调试运行进入NDK的Debug模式,切换到LLDB标签页,进入到lldb的命令行,在这里输入LLDB的命令可以有效的帮助我们调试NDK程序。笔者输入的: p hello,是打印hello变量的内容,更多的命令请读者自行查找。
  Android Studio NDK开发与调试所需配置及其使用_第6张图片

你可能感兴趣的:(Android,工具)