有些事真的很煩鎖,但是又不得不做
環境:ubuntu12.04
ndkr9
android sdk
android 4.2.2 盒子,已root
過程:
1、c++ 編寫程式
2、ndk-build ndk_debug=1 //強制生成除錯資訊
3、adb push gdbserver /system/bin //把 生成的libs下armeabi下的 gdbserver 放到android盒子裡,放到system/bin 下,可以直接啟動
4、adb push 程式 /data/bin 下,這裡一定要注意,程式不是libs下的 而是obj下的 obj/local/armeabi/ 下的程式,原因就是:預設情況下,android的編譯系統在編譯程式時已經使用了「-g」選項,即已經生成了除錯資訊。但是在生成最終的檔案時,是經過strip的,去除了所有到除錯資訊。所以最終我們到除錯目標要使用strip之前的檔案。
5、除錯步驟
a、啟動終端 進入android,命令:
adb shell
b、在android終端啟動除錯, 命令:
cd /data/bin //程式放在了這裡
gdbserver :1234 程式 //gdbserver 啟動監聽埠號,用於和pc機通訊 除錯
c、在啟動終端,啟動gdb, 命令:
arm-linux-androideabi-gdb //這個玩意在ndk toolchin 裡,能找到吧
d、執行:
shell adb forward tcp:1234 tcp:1234
target remote localhost:1234
file obj/local/armeabi/程式
就可以除錯了
通過wifi除錯android程式
資料線丟了,不想花錢去買,在網上看了看,android手機居然可以通過wifi進行程式的除錯,太好了,自己搞了一下,雖然網上寫的很詳細,但是還是有些問題,記錄下來,下次參考。1.首先讓android 聽指定的埠 這一步需要使用shell,因此手機上要有終端模擬器,不過網上很多,隨便找個就行了,依次敲...
android 通過uri啟動Activity
uri定義了通訊協議 uri uri uri.parse com.sds.gw 通過action和uri呼叫第二個程序中的activity,並傳遞資料 intent invokeintent new intent null,uri invokeintent.putextra prm1 z invok...
android 通過tcpdump抓包
1.手機root許可權 3.adb push e tcpdump data local tcpdump 4.adb shell 用su獲得root許可權 5.cd data local 6.tcp i any p s 0 w sdcard capture.pcap 引數 i 監聽任何網路介面 p 禁...