非官方方法
看了很多的博客,android studio 的ndk使用,虽然用倒是可以用,但是既然as现在集成的这么好,不如试试官方给的办法好了
基础篇
(平台:windows下)
第一步:下载Ndk与build工具
- 在一个打开的项目里,选择 Tools > Android > SDK Manager
- 选择 SDK Tools
- 点击 LLDB,Cmake,NDK , 点击 apply
Ndk:
一个允许你在Android下,使用C和C++代码的工具集。
并且提供了一些可以让你管理native activity 和 使用比如传感器等物理设备组件的平台库
nativeactivity官方解释:完全用native code(c++,c)实现的activity
Cmake官网 :
与Gradle类似,是用来编译你的 native 库的,如果你打算用 ndk-build 那就不需要添加这个模块了
how to use Cmake
LLDB官网:
Android studio 用来对native code debug的
how to debug native code
第二步:创建一个C/C++支持的新项目
1 创建一个新的项目,点击 Include C++ Support
2 点击next选择一些其他的项目,直到出现以下页面
- C++ Standard 用于选择你想使用哪种C++,选择 Tool chain Default 使用的是默认的Cmake设置
- Exception Support 检查如果你想支持c++的异常处理,那么就点选
- Runtime Type Information Support 如果你想支持RTTI,那么点选这个
3 点击finish,新的目录结构里出现了两个新的部分
cpp 和 External Build Files
cpp 中存放的是你项目中的 native source code,header 和 预编译的库文件。而External Build Files是Cmake和ndk-build的编译脚本文件
第三步:运行样例app
点击Run,之后
- Gradle 调用 你的 external build script
- Cmake 遵从 脚本中的命令来编译C++源文件,生成一个 so 库,然后Gradle把这个库打包如apk中
- 在运行时,java文件使用
System.loadLibrary()
来载入生成的so库,库中的方法就在app中使用了
第四步:分析此时的Apk中的库
点击 build -> Analyze Apk
选择apk,点击ok
可以看到对应不同的cpu架构,都有着对应的so库