上一篇更新停在 2026 年 7 月 17 日的 v1.1.1。当时 SmartPerfetto 已经有双 Trace 工作台、Quick Mode、私有分析上下文、统一 Agent runtime,以及 Camera、Heap、GPU 等专项分析能力。
从 7 月 18 日到 8 月 21 日,仓库又向前走了五周,版本来到 v1.7.0。这一轮继续增加功能,也把更多精力放在知识来源、分发质量、权限隔离、结果完整性和可回滚改进上。
SmartPerfetto 正在从“能完成一次分析”走向“能在更多环境里稳定、可追溯地完成分析”。
本文以公开发布的 v1.7.0 代码为准,回顾 v1.1.1 之后加入的主要能力。
项目与上篇文章:
五周变化总览

| 项目 | 结果 |
|---|---|
| 时间范围 | 2026.07.18 - 2026.08.21 |
| 版本范围 | v1.2.0 - v1.7.0 |
| 主要版本 | 6 个:v1.2、v1.3、v1.4、v1.5、v1.6、v1.7 |
| 提交数量 | 122 个,包含功能、修复、发布和合并提交 |
| 免安装目标 | Windows x64、macOS arm64、Linux x64 |
| 已有本地模型回归证据 | v1.6.0 完成 7 个场景 × 3 套 runtime,共 21 条路径 |
如果把这五周压缩成一张路线图,可以分为七条线:
- Android Internals 从维护者本机资料变成随发行物交付的签名 Knowledge Pack。
- Windows、macOS、Linux 免安装包补齐更新提示、签名、公证、迁移和平台原生验收。
- 双 Trace 开始承载大文件,Code-Aware Analysis 可以把 Trace 证据映射回本机源码。
- Self-Evolution 建立从反馈、回放评估到人工应用和回滚的受控流程。
- 企业 OIDC、workspace 隔离和私有分析投影逐步加入。
- Provider/runtime 与最终报告共享更严格的超时、身份和质量门禁。
- v1.7.0 增加 Qoder BYOK 路由,并完成六份真实 Trace fixture 的公开审查。
1. Android Internals 变成可随版本交付的知识包
v1.2.0 先加入了 Android Internals Knowledge Pack。
过去,系统背景知识更多依赖维护者本机目录或私有 Wiki。现在 npm、Docker、源码和免安装包会携带同一份签名、版本锁定的离线快照。
用户不需要知道维护者的目录结构,也不需要访问私有仓库,安装后就能获得受控的 Android 系统背景检索能力。
这套机制保留了几条重要边界:
- Knowledge Pack 有独立版本和内容指纹,会话开始后固定本次使用的版本。
- 更新通过 TUF stable channel 检查;校验失败时继续使用上一个已知可用版本。
- 模型只接收预算受控、经过 secret redaction 的片段。
- 报告保留来源、版本、fingerprint 和 snippet hash,日志与 SSE 不投影正文。
- 知识命中只能解释系统背景,当前 Trace 的根因仍要由 SQL、Skill 或其他 Trace 证据证明。
Android Skills 的分析防护也被补强。SQL guardrail 会拦住更危险或证据不足的查询模式,Skill 的公开分类与回归覆盖继续补齐。
知识可以帮助 Agent 提出更好的假设,但不能替代当前 Trace 的事实。
对于拥有私有 Android Internals checkout 的团队,私有知识源仍然可用。使用前需要显式配置路径白名单、权利确认、发送给 Provider 的同意,以及本次请求使用的 source id。
公开 Pack 和私有知识是两条不同的路径,不会互相放宽权限。
2. 分析输出开始围绕“完整、可保存、可核对”收口
7 月下旬,SmartPerfetto 对中文分析界面做了一轮系统补齐。Skill 标题、教学内容、关键路径状态和分析输出会根据语言选择投影,不再出现一半中文、一半内部英文状态的情况。
报告保存也增加了路径和生命周期约束。分析完成后,结果、HTML 报告、snapshot 和对比附录分别保留自己的身份,避免在退出 Perfetto 分支、恢复历史会话或继续追问时串到另一份结果上。
v1.6.0 又把最终报告的收尾逻辑做了一次集中加固:
- 双 Trace 的 current/reference 身份会进入最终结果质量检查。
- 缺少对比附录、证据引用或必要章节时,质量问题会反馈给同一次报告 continuation。
- continuation 只修正缺失部分,不要求模型重写整份已经完成的报告。
- 归一化和 UI 投影保留完整 final report,避免长报告被中间摘要截断。
这类改动在功能列表里不算显眼,却直接决定一份分析能否进入团队协作。报告只有在身份、证据和结论能对应起来时,才适合保存、对比或贴进 issue。
3. 免安装包从“能打出来”走到“可以按平台交付”

v1.2.x 到 v1.7.0 期间,Windows x64、macOS arm64 和 Linux x64 免安装包经历了连续几轮修正。每个包都包含 Node runtime、后端、提交版 Perfetto UI 和固定版本的 trace_processor_shell,用户解压后即可启动。
这一阶段新增或完善的能力包括:
- Web UI 和
smp update check可以提示当前构建、分发方式、最新版本和对应更新动作。 - 更新检查只负责通知,不会自动覆盖目录、替换源码、重启容器或迁移用户数据。
- macOS 包补齐所有 Mach-O 的签名、Developer ID 公证和 stapling,并明确最低系统版本。
- Windows 启动、health probe、进程回收和 DPAPI 凭据读取改为在 Windows runner 上做原生验证。
- Windows 会优先选择安全的 D 盘数据位置,并保留旧目录迁移与冲突处理规则。
- 启动地址统一使用明确的 IPv4 loopback,减少
localhost在不同机器上的解析差异。
这里也有过一次公开的失误:v1.2.3 的 macOS 资产暴露了最终签名和部署目标问题。
后续版本把签名对象、目标系统、不可变资产、摘要和 target-native smoke 一起纳入发布流程。现在发布页上的包会带 SHA256,发布验收也对准最终上传的那个归档,不再使用临时目录里的相似产物作为发布证据。
4. 大 Trace、最新 Perfetto 与本机源码开始连成一条线

v1.3.0 解决了双 Trace 工作台面对大文件时的关键瓶颈。历史 Trace 不再为了打开第二个窗口而完整复制到浏览器 pane,后端会为它建立隔离的 Trace Processor RPC session。
启动超时会随文件大小调整,processor lease 会保护仍在使用的 viewer,runtime supervisor 负责回收遗留进程。
同一版本还加入了本机目录选择器。源码运行和免安装模式在 loopback 条件下可以调用系统 folder picker,用户无需在 Web 页面里手工输入很长的绝对路径。
v1.5.x 进一步把目录选择扩成 Code-Aware Analysis:
- 支持注册本机 App、AOSP、kernel 或 OEM SDK 源码。
- 先用调用栈、native frame、kernel symbol 和索引进行 metadata-only 检索。
- 报告使用相对路径、行号和 symbol 形成
CodeRef,不暴露本机绝对 root。 - 源码正文只能通过受控 excerpt 临时读取,并受路径、文件类型、大小、行数和脱敏规则限制。
- 没有为本次 session 选择 codebase 时,原有 trace-only 分析保持不变。
同一阶段还同步了较新的 Perfetto 前端能力。浏览器本地可以使用 Trace Doctor、统一 Stack Samples/flamegraph、Video Frames、Pixel 输入生命周期与 CUJ 视图;本地 WASM 也能处理 zstd trace、strace -ttt 和多 statement SQL。
这些浏览器能力与后端 AI/Skill 仍保持清晰边界,后端继续使用发行物固定的 native Trace Processor。
5. Self-Evolution:让反馈可评估,也可撤销

v1.4.0 前后加入的 Self-Evolution,面向维护者和 workspace 管理员,默认关闭。
它的目标很明确:让一次有效反馈进入可以审查的改进流程。
- 每次分析生成不可变 RunManifest,固定 runtime、Provider、策略和 overlay generation。
- public/private feedback 分开存储,只有有效公开反馈能进入显式策展。
- 系统生成有界提案,并在固定 validation 与 holdout case 上配对回放 baseline/candidate。
- 提案通过门禁后仍要人工 accept,才能显式 apply 最小 overlay。
- 新分析固定使用某一代 overlay;启动或升级时会对账,也可以随时 revert。
整个流程不会自动 commit、push、创建 PR,也不会改写 TypeScript。缺少权限、持久化目录或评估门禁时会 fail-closed,因此普通用户关闭功能时,原有分析路径不受影响。
在另一条普通用户路径上,M10 加入了 Agent 辅助 GitHub 反馈。一次分析完成后,用户可以让独立 Agent 判断问题是否值得反馈、可能属于哪个模块、还能贡献哪些材料。
它只生成待用户审查的 GitHub 草稿;private/code-aware 分析不会走公开反馈,安全问题也会改走 private advisory。
6. 企业登录、Provider 与 runtime 的边界更清楚

面向共享部署,v1.4.0 补齐了企业 OIDC 登录流程。登录、回调、session 与登出路径使用明确的 cookie 和 state 校验,Trace、分析结果与设置按 tenant/workspace/user scope 隔离。
后续修正继续处理 page-scoped analysis,避免同一浏览器里不同页面或 workspace 复用错误的分析上下文。
Agent runtime 也继续演进。7 月加入了可选的 Qoder Agent SDK 生产路径;v1.6.0 把 Pi Agent Core 迁移到 provider-explicit runtime。
激活的 Provider Manager profile 会形成分析开始时的 snapshot,凭据来源和环境注入彼此隔离,分析过程中不会悄悄切到另一个 Provider。
v1.7.0 为 Qoder 加入 BYOK 模型路由。用户可以通过 resolveModel 把 Qoder 请求交给 DeepSeek 等自带 API Key 的模型 Provider,主模型和轻量模型分别固定。
Qoder PAT 或本机 qodercli 登录仍然负责 Qoder 自身认证。BYOK Key 不进入 SDK 子进程环境、诊断输出或明文 snapshot,只以 secret fingerprint 参与 Provider pinning 和会话恢复判断。
配置缺项时直接拒绝启动,不会退回到未固定的模型路径。
长时间运行的分析增加了有界执行和 stream timeout 收尾。OpenAI Agents SDK、Pi Agent Core、OpenCode 的最终输出都要经过同一套报告身份与质量门禁。
v1.6.0 发布前,本地 DeepSeek 环境对 7 个场景、3 套 runtime 共 21 条路径做了回归;远程 DeepSeek E2E workflow 已删除,避免把本地凭据和外部服务可用性混进公开 CI。
v1.7.0 又修正了两条收尾路径:DeepSeek reasoning model 在 OpenAI-compatible 多轮工具调用中会继续携带 reasoning_content,Pi 的 final correction 也会收到对比身份等语义质量错误,再生成终态报告。
7. 六份真实 Trace fixture 完成公开审查
SmartPerfetto 的回归不仅依赖构造数据,仓库还维护六份真实 Trace fixture:两份 Android 滑动、两份 Android 启动,以及 Flutter SurfaceView、TextureView 两种滑动路径。
v1.7.0 为这六份 fixture 补齐了明确的 AGPL-3.0-or-later 许可、所有者公开同意、隐私检查和脱敏审查。
对应的 case.json 与 Trace/catalog.json 会记录发布状态,遗留豁免列表也随审查完成而收缩。
这项工作没有改变 Trace 分析算法,但补齐了真实案例进入公开回归库之前的材料边界。后续 Skill、runtime 或报告质量回归可以继续复用这些 Trace,同时保留来源、许可和隐私记录。
当前完整功能地图
经过这五周,SmartPerfetto 的用户功能可以归纳为下面 15 组:
| 功能组 | 主要入口 | 本轮变化 |
|---|---|---|
| Perfetto UI 内 AI Assistant | AI 面板 | 中文状态、报告收尾和鉴权布局加固 |
| 常见性能场景 | fast/full/auto | Android Skills 分析防护补齐 |
| 选区与上下文追问 | area/track selection | 延续既有能力 |
| SQL、Skill 与证据 | 结果表格、claim/evidence | 知识与 Trace 证据边界更明确 |
| HTML 报告 | 报告入口 | 完整性、Mermaid 和保存安全加固 |
| 双 Trace 实时对比 | compare_arrows |
大 Trace RPC、结果身份保留 |
| 多 Trace 结果对比 | fact_check |
对比附录与结果身份加固 |
| Android Internals 知识 | 内置 Pack、私有 source | 新增签名离线 Pack 与 TUF 更新 |
| Code-Aware 分析 | Codebases、CLI | 新增本机目录选择和 CodeRef |
| Provider/runtime | Providers、runtime selector | Qoder BYOK、Pi provider-explicit、DeepSeek/Pi 收尾修正 |
| Self-Evolution | Evolution 控制台 | 新增受控提案、评估、apply/revert |
| Agent 辅助反馈 | 完成结果下方入口 | 新增 GitHub 草稿判断流程 |
| API、CLI、MCP | smp、workspace API |
batch、capture、update 等入口扩展 |
| 真实 Trace 案例库 | Trace/catalog.json |
六份 fixture 完成许可、公开同意、隐私和脱敏审查 |
| 分发方式 | Docker、portable、源码 | 三平台发布与更新验收持续加固 |
版本时间线
| 日期 | 版本 | 重点 |
|---|---|---|
| 07.18 | v1.2.0 | 签名 Android Internals Knowledge Pack 进入正式发行物 |
| 07.18 - 07.28 | v1.2.x | 中文分析界面、Android Skills 防护、Qoder runtime、更新通知与三平台发布治理 |
| 07.28 | v1.3.0 | 大 Trace 双窗、隔离 Trace Processor RPC、本机目录选择器 |
| 08.03 | v1.4.0 | Self-Evolution、Agent 辅助反馈、企业 OIDC、Perfetto 前端同步与 runtime recovery |
| 08.07 - 08.12 | v1.5.x | Code-Aware Analysis、来源感知报告、Mermaid 加固与 Windows DPAPI 修正 |
| 08.14 | v1.6.0 | Pi provider-explicit、D 盘数据策略、双 Trace 身份和最终报告质量门禁 |
| 08.21 | v1.7.0 | Qoder BYOK、DeepSeek/Pi 收尾修正、六份真实 Trace fixture 公开审查 |
如何体验
免安装包
Windows、macOS 和 Linux 用户可以直接打开 Latest Release,下载与当前平台匹配的资产并校验 SHA256。
Windows 解压后运行 SmartPerfetto.exe,macOS 解压后打开 SmartPerfetto.app,Linux 解压后运行 ./SmartPerfetto。
Docker
1 | git clone https://github.com/Gracker/SmartPerfetto.git |
然后打开 http://localhost:10000,加载 .pftrace 或 .perfetto-trace,在 AI Assistant 的 Provider 设置里保存、测试并激活一个模型配置。
本地源码
1 | git clone https://github.com/Gracker/SmartPerfetto.git |
普通使用不需要初始化 Perfetto submodule;只有修改 AI Assistant 前端插件时才需要进入 dev 模式。
反馈与交流
- GitHub Issues:https://github.com/Gracker/SmartPerfetto/issues
- Discussions:https://github.com/Gracker/SmartPerfetto/discussions
- 最新版本:https://github.com/Gracker/SmartPerfetto/releases/latest
也欢迎加入 SmartPerfetto 交流群:

接下来仍会继续补不同 Android 版本的真实 Trace、验证结果和多 runtime 本地回归。SmartPerfetto 的目标没有变:让一次性能分析能给出答案,也能留下可以复核、保存和继续改进的证据。