Android Studio22-NDK-LLDB調試


Android Studio2.2更好的支持NDK開發,並可以像開發java一樣的DEBUG程序,不需要添加gradle-experimental插件,就可調試代碼!

一,下載 NDK 和構建工具

要編譯和調試本地代碼(native code),你需要下面的組件:

(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 不顯示LLDBCMake NDK,說明你配置了國內鏡像站點!!

要能上google官網才會顯示,之前也是通過國內鏡像,一直沒顯示出來!

Tools > Android > SDK Manager >點擊 SDK Tools 選項卡。

勾選 LLDBCMake 和 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 標志。

 

完成后結構如下:

 

 

說明:

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斷點調試是一樣的!






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM