Android 系統調試技巧

1.實時跟蹤Kernel Log,主要命令dmesg,詳細用法可以使用-h選項查看,如實時查看kernel Log信息

adb shell dmesg -T -w

會不斷將Kernel Buffer Log吐出

2.logcat 工具,除了常用的過濾,還可以根據pid過濾

如adb logcat --pid xx

只看某個進程的log

3.某個進程卡死,但是又沒有生成ANR或者其它DB,在Q平臺可以使用kill -5 pid命令殺掉併產生backstrace分析,生成的文件路徑爲/data/tombstones,可以查看各個線程的一個狀態。

4.使用AS調試,增加斷點。如想查看Handler裏有多少個未處理的消息:

調用Handler中有多少個Message,可以在AS關注點前斷點,也可以向源代碼添加的方式,
然後右鍵選擇Evaluate,添加代碼如下:
mH.dump(new LogPrinter(Log.DEBUG, "tag_xx"), "Haha ");
點擊執行,同步打開終端使用logcat -s os_xx,接收輸出的Log即可以了
打開某個線程的loop Log,如WMS的android.display線程
WMS使用的線程,名字DisplayThread,調用其Looper.setSlowLogThresholdMs參數,將其設置爲200ms,只要
某個消息處理耗時大於200ms,將打印出對應的Log

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章