调试工具全景:四类证据如何分工协作
2026/8/9大约 2 分钟调试工具Android 14调试工具logcatdumpsys
调试工具全景:四类证据如何分工协作
logcat 记录事件,dumpsys 展示当前服务状态,trace 还原执行时间线,ANR、tombstone 与 bugreport 保存故障现场。选择工具前应先明确问题是“发生了什么”“现在怎样”还是“为何耗时”。
四类证据回答四个问题
| 常见误解 | 正确理解 |
|---|---|
| 调试就是“多开几个 log” | 工具按证据类型分工:事件流、状态、时间线、现场文件各回答一个问题 |
| logcat 是万能的 | logcat 只给事件流,状态快照和时间线它给不了 |
| 工具越多越好 | 按问题选最少必要的组合,少而准 |
核心结论
- 排查方法:现象 → 选证据类型 → 抓取 → 交叉验证 → 根因。
- logcat 负责“事件流”,适合定位发生时机与关键字。
- dumpsys 负责“状态”,适合确认服务、进程与配置的当前值。
- trace 负责“时间线”,适合定位线程卡点与帧超时。
- 现场文件负责“完整现场”,ANR/tombstone/bugreport 是复盘主证据。
工具选择地图
逐步解释:
- 问“何时/什么”:用 logcat 找关键字与时间点。
- 问“状态”:用 dumpsys 确认服务与进程当前值。
- 问“时间”:用 trace 还原线程与帧。
- 问“现场”:用 ANR/tombstone/bugreport 拿完整证据。
- 交叉验证:多类证据指向同一根因才算定位。
本专题的分工
- logcat 体系:事件流怎么抓、怎么过滤。
- dumpsys 地图:状态快照怎么读。
- adb 命令族:am/pm/cmd/settings 等常用命令。
- profiler 与 trace:方法级与帧级性能分析。
- 断点与证据文件:调试器与 ANR/tombstone 工作流。
验证与排障
环境:开发设备或模拟器;以下命令不需要 root。
adb logcat -v threadtime -d
adb shell dumpsys -l
adb shell dumpsys activity top先用 dumpsys -l 看有哪些服务,再按需 dumpsys <服务>;logcat 与 dumpsys 组合使用, 先定位时间点再确认状态,避免只靠一类证据下结论。
源码入口
| 文件 | 关键位置 | 作用 |
|---|---|---|
system/core/logcat/ | logcat 工具 | 事件流 |
frameworks/native/services/dumpsys/ | dumpsys 主程序 | 状态快照 |
system/core/debuggerd/ | tombstone | 现场文件 |
DropBoxManagerService.java | bugreport 关联 | 事件收集 |
公共路径:system/core/、frameworks/native/services/ 与 frameworks/base/services/core/java/com/android/server/。行号以 r75 检索为准。
从事件流证据开始,见 logcat 体系。