跳转至

架构说明

项目结构

src/perfetto_cli/
├── cli.py                 # CLI 入口(Click 命令组)
├── types.py               # 共享类型定义
├── core/
│   ├── trace_processor.py # TraceProcessor 封装
│   ├── query_engine.py    # SQL 查询执行引擎
│   ├── trace_config.py    # Trace 抓取配置
│   ├── trace_session.py   # 设备 trace 会话管理
│   ├── adb.py             # ADB 设备通信
│   └── skill_manager.py   # Skills 插件系统
├── commands/
│   ├── anr.py             # ANR 检测命令
│   ├── frame.py           # 帧性能命令
│   ├── cpu.py             # CPU 分析命令
│   ├── memory.py          # 内存分析命令
│   ├── binder.py          # Binder 分析命令
│   ├── query.py           # SQL 查询命令
│   ├── trace.py           # Trace 抓取命令
│   └── skills.py          # Skills 管理命令
├── formatters/
│   ├── text_fmt.py        # Rich 文本格式化器
│   ├── table_fmt.py       # ASCII 表格格式化器
│   └── json_fmt.py        # JSON 格式化器
└── utils/
    └── sql_helpers.py     # SQL 查询工具

关键设计决策

基于 Click 的 CLI

CLI 使用 Click 嵌套命令组。每个分析领域(anr, frame, cpu 等)是一个 Click 命令组,包含若干子命令。

TraceProcessor 封装

所有 trace 分析通过 core/trace_processor.py 进行,它管理 Perfetto SDK 中 trace_processor 二进制的生命周期。查询通过 Perfetto Python API 执行。

格式化器模式

输出格式化与分析逻辑解耦。每个命令返回结构化数据,格式化层根据 -f 标志处理展示。

查询引擎

core/query_engine.py 提供可重用的 PerfettoSQL 查询接口。分析命令使用 utils/sql_helpers.py 组合复杂查询。

依赖

用途
click CLI 框架和参数解析
rich 终端格式化和彩色输出
perfetto Trace 处理(包含 trace_processor)