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

 

你可能感兴趣的:(Android)