独立实现的 Android 性能采集与会话分析工具:PSS / CPU / FPS 采集、离线回放比较与后台一致性验证,重点在指标口径与生命周期正确性。
概要
项目关系
PerfCat 仓库根目录包含第三方 PerfDog 分发包的静态恢复参考,该部分非本人代码,不作为个人成果展示。本页展示的是我个人独立实现的 Android 性能采集与会话分析工具,定位为实验研究与阶段验证,而非完整成熟的性能产品。
关键实现
- 指标采集与导出:PSS、CPU、FPS 采集,会话数据归档、离线条件回放、比较与独立 JSON 导出。
- CPU 窗口计算的正确性:处理 PID 复用(同一个 PID 前后不是同一进程)、进程集合变化、计数器回退、溢出与异常增量;无法给出可信口径时明确拒绝输出,而不是给一个看起来合理的数。
- 纳秒级范围分析:条件假设与观测样本不等于完整范围的证明;统计缺少完整性资格时明确标记未知 / null,而不是把不可用当成零。
- 异步采样生命周期:测试覆盖采样停止、在途请求的完成路径、重启后迟到回调的隔离,避免旧会话数据污染新会话。
- 后台处理:完整档案的捕获、导出、历史保存与历史行准备均有后台 worker 路径;列表安装、角色调和与控件更新仍在 FX 完成,并非所有 UI 工作都后台化。
分析与验证案例:什么时候宁可拒绝输出
性能工具最容易出的问题不是采不到数,而是采到“看起来对但其实错”的数。CPU 窗口计算的每个异常场景(PID 复用、集合变化、回退、溢出)都有对应处理与测试;异步采样则围绕生命周期设计测试,确保停止与重启后的迟到数据不会混入归档。这套“指标如何计算、何时拒绝输出、如何验证生命周期”的方法是本项目最想展示的部分。
后台处理与数据一致性
2026-10-25 完成后台化与一致性验证;2026-10-28 在 1000 份合成档案输入下跑通真实界面的基本流程,包括保存、同内容重存、回放、比较、替换档案拒绝与退出。这是验证记录,不是设备采集测试,也不能推导通用加速倍数。完整整理见实践记录《PerfCat 的后台处理与数据一致性验证》。
当前状态
- FPS 当前支持范围有限;新的逐帧引擎仍未接入周期性 live 计算,owner 与连续性证明未补齐。
- 条件回放仍为未证明状态,不新增实时 FPS 资格。
- 仓库为私有,以本站的记录为准。
相关实践记录
- PerfCat 的后台处理与数据一致性验证 · 2026-10-28