最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述Android Studio22-NDK-LLDB调试相关的知识,希望能为你提供帮助。
android
Studio2.2更好的支持NDK开发,并可以像开发java一样的DEBUG程序,不需要添加gradle-experimental插件,就可调试代码!
一,下载
NDK
和构建工具
(1)The
Android
Native
Development
Kit
(NDK)
:
让你能在
Android
上面使用
C
和
C++
代码的工具集。
(2)CMake
外部构建工具。如果你准备只使用
ndk-build
的话,可以不使用它。
(3)LLDB
:
Android
Studio
上面调试本地代码的工匠。
注意:要在
Android
Studio
中
使用
CMake
或者
ndk-build,你需要使用
Android
Studio
2.2
或更高的版本,同时需要
配合使用
Android
Plugin
for
Gradle
2.2.0
及以上的版本。
安装上述组件:
注:如SDK
Tools
不显示LLDB,CMake
和NDK,说明你配置了国内镜像站点!!
要能上google官网才会显示,之前也是通过国内镜像,一直没显示出来!
Tools
>
Android
>
SDK
Manager
>
点击
SDK
Tools
选项卡。
勾选
LLDB,CMake
和
NDK
。
文章图片
已单独下载了 android-ndk-r11b所这里不再下载NDK!(最好勾选下载最新NDK)
点击 Apply ,然后点击 OK 。
二,新建项目:
文章图片
勾上 include C++ support
在最后一步时可选择不同的C++库如图:
文章图片
说明:
虽说是支持C/C++,但是不完全支持C/C++的全部特性,必须得按照 jni的约定来:参照 jni完全手册!教程参照:Jni入门: 官网demo
C++ Standard: 选择C++库
Toolchain Default: 默认 CMake 设置
C++ 11:支持C++11特性!
Exceptions Support(-fexceptions):
如果你想使用有关 C++ 异常处理的支持,就勾选它。勾选之后,Android Studio 会在 module 层的 build.gradle 文件中的 cppFlags 中添加 -fexcetions 标志。
Runtime Type Information Support(-frtti):
如果你想支持 RTTI,那么就勾选它。勾选之后,Android Studio 会在 module 层的 build.gradle 文件中的 cppFlags 中添加 -frtti 标志。
完成后结构如下:
文章图片
说明:
【Android Studio22-NDK-LLDB调试】native-lib.cpp: 自动生成的C++源文件
CMakeLists.txt:
CMake 脚本根据构建脚本的指令去编译一个 C++ 源文件,也就是 native-lib.cpp ,并将编译后的产物扔进共享对象库中,并将其命名为 libnative-lib.so ,然后 Gradle 将其打包到 APK 中。
External Build Files
存放 CMake 或 ndk-build 构建脚本的地方。有点类似于 build.gradle 文件告诉 Gradle 如何编译你的 APP 一样,CMake 和 ndk-build 也需要一个脚本来告知如何编译你的 native library。
注意 :
Android.mk与Application.mk,都是由工具自动管理,再也不用写了,当然也可自定义.
编写请参照:android.mk分析一文!
如果要在native-lib.cpp文件中添加多少方法,必须添加在 extern “c” { } 中,或者在每个方法前加 extern “c” , 否则会报找不到方法!
配置后,默认的是C++的,如要改成C语言后缀的,直接把native-lib.cpp,改在C,并去掉 extern “c”,
在CMakeLists.txt文件中native-lib.cpp也修改后缀名!
最后调试,与java断点调试是一样的!
来自为知笔记(Wiz)
推荐阅读
- Android?线程池(转)
- Eclipse如何替换android应用图标
- 安卓的开端的相关配置
- Android 闹钟最终版
- 第一天安卓笔记
- [转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法
- Android布局中实现圆角边框
- Android 沉浸式状态栏及悬浮效果
- 学习Android的CH01