Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 15 章:其他分析工具

Perfetto 擅长把调度、进程、渲染和应用事件放在同一条时间轴上。本章介绍另一类工具,它们要么需要专门的采集方式,要么给出其他证据形态:CPU sampling(周期性采样调用栈)、Heap Dump(某一时刻的堆对象快照)、布局层级检查、GPU capture(按工具能力捕获单帧或一段帧的命令、资源和管线状态)、构建产物分析,以及 production telemetry(线上长期汇总的指标和事件)。

选哪个工具,取决于要回答的问题和所需的证据:判断 CPU 时间花在哪些函数上,看 CPU sample 的统计调用栈;追对象之间的引用关系,看 Heap Dump;读取服务的当前状态、保留历史或统计窗口,看命令行快照,并核对各字段的时间边界;定位单帧的绘制细节,看 GPU capture;观察较长时间、大量设备上的趋势,看线上 telemetry。这些工具回答的问题不同,结论不能直接互换。

按问题选择证据形态

图:先区分函数与对象、图形与状态、构建与线上趋势,再选择对应证据。 CPU样本、堆对象图、帧捕获、服务输出和群体指标各有观测边界;结论需要补齐对应证据。

内容索引

阅读建议

  • 如果你已经会看 Perfetto,可先判断所需证据是否存在于系统 trace;缺少函数调用栈、对象图或单帧 GPU 状态时,再选择对应的专用工具。
  • CPU 调查可在 15.1—15.2 中选择 IDE 集成分析器、simpleperf 采样器或基于 PMU(处理器硬件性能计数器)的微架构分析;内存对象与 Heap Dump 调查转到 15.3。
  • 系统命令快照与功耗工具见 15.4—15.5;自动化回归、线上 profiling、statsd、StrictMode 和 CLI/Agent 工作流见 15.6—15.9。这里的 Agent 工作流指由自动化代理编排命令、采集和分析步骤。
  • GPU、相机、窗口合成和布局层级问题集中在 15.11—15.15,应按问题选择帧捕获、GPU Counter、Camera Trace、Winscope 或 Layout Inspector。
  • 第三方 Hook、动态可达性、eBPF 与 R8 规则分析分别见 15.10、15.13、15.16 和 15.17。使用前应先确认 Android 版本、构建类型、权限和数据安全边界。

从问题到可验证结论

图:明确问题后先查现有trace覆盖,再核对专用工具的适用条件,最后关联证据并回归。 记录版本、构建类型、权限、对象和时间窗;快照、计数、采样和回放均需按各自语义解释。