有一段時間沒弄Android了,整理一下,把之前 用GDB調試 Android jni程式過程共享一下:
Android 應用層為JAVA語言,但有時需要C/C++實作一些特定功能,比如視訊編解碼,此時需要借助JAVA的JNI技術,用JAVA語言調用c/C++程式,
而C/C++程式庫 調試通常用GDB,不例外,Android 平台也提供了調試 JNI的功能,步驟如下:
1. 把
android:debuggable="true" 設定到
AndroidManifest.xml
檔案的
<application>
标簽,
2. NDK-BUILD 執行編譯動态庫時時 後面帶上 NDK_DEBUG=1
3. Application.mk 檔案中 添加
APP_OPTIM := debug
4. 啟動Android裝置上的 gdb server : gdbserver :5055 --attach PID
參數為監聽端口 5055, 要調試程序号 PID,
5. 在 主控端上 執行 adb forward tcp:5055 tcp:5055
連接配接到GDB server.
6. 啟動用戶端 GBD :
arm-linux-androideabi-gdb
7. 設定庫路徑:
set solib-search-path obj/local/armeabi/libMySharedLib.so
target remote :5055