SuperAPI AI 工具集

android-performance

测试与质量

查看项目

更新于 10-16 07:27

技能介绍

用途:在可通过 adb 安装的应用上采集并解读 Android 性能证据,针对单一聚焦的用户可见流程做测量与归因。CPU 采样通常要求可调试或 profileable 构建;帧统计、Perfetto 与 logcat 在无法采样时仍可用。设备选择、构建/安装/启动、UI 驱动、截图、UI 树与 logcat 采集可结合 ../android-emulator-qa/SKILL.md。

主要能力:Simpleperf 用于回答“哪些函数占用 CPU”,支持 Kotlin、Java、native 与框架采样分析;Perfetto 用于帧时序、启动时间线、调度间隙、binder、锁竞争、主线程停顿与 Compose 重组;gfxinfo framestats 用于快速手动帧/卡顿快照;meminfo 与堆转储用于 Java/Kotlin 保留对象、PSS、native 堆与对象计数。产物写到运行专属 ARTIFACT_DIR,不放在技能目录下。

用法要点:选定一个流程,按问题选择跟踪类型,明确起止边界录制,拉取该次运行产物再生成报告。报告需标注设备、构建类型、样本数与 profiler 限制。读取 Simpleperf 时区分 Self/Overhead(叶子热点)与 Children/inclusive(昂贵入口),优先应用自有包帧;百分比仅用于单次采集内排序,对外时间结论需配合 Perfetto、gfxinfo 或重复墙钟测量。若流程慢但应用 CPU 很少,改用 Perfetto 查看调度、binder、锁与帧时序。

限制:Simpleperf 不直接测挂起协程、网络延迟或锁等待等墙钟耗时。轻量 Perfetto 命令不保证帧时间线或 Compose 重组细节,仅当轨迹中确实存在对应轨道/事件时才报告。模拟器绝对流畅度数值噪声大。单个 meminfo 样本只是线索;无 Shark CLI 时不要仅凭 meminfo 断言泄漏根因。heapprofd 面向 native 分配行为,保留应用对象应优先用 Java 堆转储。配置命令需保持原样,如:adb -s "$SERIAL" shell simpleperf record --app "$PACKAGE" -o /data/local/tmp/perf.data -e cpu-clock -f 4000 -g --duration "$MAX_DURATION_SECONDS"。