Android Studio22-NDK-LLDB調試

來源:互聯網
上載者:User

標籤:article   cpp   apply   尾碼名   png   rom   使用   異常   cep   

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 不顯示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 標誌。

完成後結構如下:

說明:

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 Studio22-NDK-LLDB調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.