android studio ndk 調試


一: 先看看用 ndk-gdb 手動調試

這種方法只適用於手動編寫 Android.mk 的情況,因為我們要手動 build debug 版本的 .so 文件。具體可以參考我的前一篇文章。

1 AndroidManifest.xml  android:debuggable 設置為 true

2 切換到 jni 目錄下執行 ndk-build NDK_DEBUG=1

這樣就生成了 debug 版本的庫文件,還多了一個 gdbserver 和  gdb.setup

3 運行安裝啟動程序

4 切換到你的 src/main 目錄下執行  ndk-gdb

這時報了一個錯誤:

ERROR: Could not find gdb.setup under /Users/lesliefang/AndroidStudioProjects/MyApplication/app/src/main/libs/
那就把 armeabi 下面的 gdb.setup 文件拷貝到 ./libs 下面

重新執行,結果又報了一個錯:

ERROR: Non-debuggable application installed on the target device.
Please re-install the debuggable version!

這是因為運行時 studio 沒有把 gdbserver 打包到 apk 中, 怎么辦呢,反編譯后手動打包進去,重新打包簽名就行了

安裝啟動運行,再次執行 ndk-gdb 成功

2 IDE 調試, android studio 目前對 NDK 的調試支持還只是實驗階段

具體可參考   http://tools.android.com/tech-docs/new-build-system/gradle-experimental

折騰了一番,也可以調試了

熟悉 java 的同學通常 C  和 C++ 不是很熟, 熟悉 C 和 C++ 的同學 java 通常不是很熟

所以可以先定義好接口,讓熟悉C 和 C++的同學先開發完C程序,測試通過后,

讓熟悉 java 和 JNI 的同學在外面再包一層,處理參數的傳遞和返回。復用已有的C程序也可以這么做。

JNI 可以直接用 eclipse for C、C++ 開發, JNI 接口都測試通過后再用  ndk 工具打成 .so 文件,

拿到 android studio 中, 對於 C或C++ 調用 android 中方法的情況可以先 mock 

一些類和方法, 其實大部分情況都是 java 調用 C和C++, C和C++很少調用 java。

所以我覺得一般來說 ndk 可以分出來獨立開發。

所有說直接在 android studio 中調試C和C++的時候也不多。

 


免責聲明!

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



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