Android Stuido 使用cMake构建NDK项目

原创 2017年01月03日 10:58:08

Android Stuido 使用cMake构建NDK项目

不觉得,Android studio(as)已经面市好多年了,记得13年笔者刚开始接触Android的时候,as还是试用版本,现在as发展地如火如荼,正在逐渐地取代之前的Android开发工具eclipse adt,然而,as对于ndk的支持却不是那么地好,开发起来并没有eclipse开发那么方便。as 2.2版本后,终于正式支持ndk了,本文就来讲解如何使用as 2.2(或者更高的版本)来构建ndk项目。

下载NDK和构建工具

为了在代码中使用c/c++,我们需要:

  • 你的Android stuido版本在2.2或者更高;
  • 下载Android NDK(Native Develop Kit),其允许在你的代码中使用c或c++代码;
  • CMake,一个外部构建工具
  • LLDB,as可以用来调试原生代码

我们打开SDK Manager来安装ndk,CMake和LLDB。

  1. 依次选择Tools->Android->SDK Manager
  2. 点击 SDK Tools 标签
  3. 选中 LLDB、CMake 和 NDK 旁的复选框
  4. 点击Apply
  5. 结束后点Finish

这样NDK的环境就搭建好啦

构建第一个NDK项目

创建NDK项目与创建其他项目类似,不过NDK项目需要:

  1. 在Configure your new project 部分,选中 Include C++ Support 复选框
  2. 在向导的 Customize C++ Support 部分,您可以使用下列选项自定义项目:
    • C++ Standard
    • Exceptions Support
    • Runtime Type Information Support
  3. 点击Finish

as完成新项目的构建后,我们发现as多了Cpp和External 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项目

点击Run,然后选择安装设备,该NDK项目就会安装在手机上,主界面将会显示一个“Hello from C++”。构建该应用时,将会执行以下动作:

  1. Gradle 调用您的外部构建脚本 CMakeLists.txt。
  2. CMake 按照构建脚本中的命令将 C++ 源文件 native-lib.cpp 编译到共享的对象库中,并命名为 libnative-lib.so,Gradle 随后会将其封装到 APK 中。
  3. 运行时,应用的 MainActivity 会使用 System.loadLibrary() 加载原生库。现在,应用可以使用库的原生函数 stringFromJNI()。
  4. MainActivity.onCreate() 调用 stringFromJNI(),这将返回“Hello from C++”并使用这些文字更新 TextView。

本文参考自:https://developer.android.com/studio/projects/add-native-code.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)

前言之前,每次需要边写C++代码的时候,我的内心都是拒绝的。 1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要记得住所有的...

Android studio 使用Cmake完成C/C++ 的使用以及生成so文件

Android studio 2.2版本以后对C/C++的支持可以说很方便了,当然官方推荐使用Cmake完成对C/C++的支持 2.2版本以上的同学新建一个项目就知道了,步骤如下: File -> N...

CMake构建NDK

Android Studio 2.2提供了更好用的NDK工具,使JNI开发更加容易,简化开发过程,而且可以调试了,感觉很不错。介绍在下载ndk的时候我们同时下载了CMake和LLDB,CMake是构建...

android studio 2.2 C++ 支持(CMAKE方法)

上次学到了约束布局,现在继续学习android studio 2.2使用CMAKE编译C++,并支持在C++打断点,写C++代码时也支持打断点。学习的时候是使用了国外的一篇博客的代码:http://b...

gradle 最全的配置选项 构建最佳实践

2016-04-28 figo Android程序员 今天推荐给各位的是 figo 同学几周前的一篇旧文,虽是旧文,我也是才看到,感觉非常不错,可能还有一些同学同样错过,仍然推荐给各位。...

Android开发学习之路--Android Studio cmake编译ffmpeg

最新的android studio2.2引入了cmake可以很好地实现ndk的编写。这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路–ND...

自从AndroidStudio更新到2.2,就有了CMake和传统JNI两种开发NDK的方法,主要就是在目录结构和build.gradle上的区别,下面我们将分别介绍目录区别和build.gr

http://blog.csdn.net/u012527560/article/details/51752070  自从AndroidStudio更新到2.2,就有了CMake和传统JN...

android studio 代理设置

原址:http://developer.android.com/tools/studio/studio-config.html Configuration In this docum...

Android wifi信号强弱检测

效果图 目录结构 AndroidManifest.xml中加入权限声明

SimpleGif,一款使用方法类似Glide但更省cpu、memory的Android ndk gif解码库,cmake方式,android studio项目

Gif文件是由多张静态图片组合而成,每张图片都有自己的显示时间,屏幕通过连续显示这些图片,以达到动态图的目的,由于这些特性,导致如果用java去解码,可能效率不是那么高,因为java能运行速度始终无法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Stuido 使用cMake构建NDK项目
举报原因:
原因补充:

(最多只允许输入30个字)