用途:对已安装的发行版 APK 做黑盒运行时性能分析,无需 root、源码或 debug/profileable 标记。脚本 scripts/profile.py 使用标准库,把适合无 root 的 Android 性能工具封装起来,并将结果对照公开阈值评级。若只需快速看一眼内存与卡顿,可用 android-package-diagnostics perf;本技能是更深入的带基准版本(启动中位数、卡顿百分位、Perfetto 抓取、baseline profile 状态)。崩溃/ANR/权限问题、APK 静态内容分析、网络时序与 UI 驱动分别属于 android-package-diagnostics、android-apk-analysis、android-network-trace、android-ui-driver。堆转储、分配跟踪、Studio Profiler、simpleperf 需 profileable/debuggable 或 root,不在范围内。
主要能力与用法:命令形式为 python3 "${CLAUDE_SKILL_DIR}/scripts/profile.py" <cmd> <pkg>。startup 用 am start -W 测量进程冷启动中位数,按 Android vitals 判定(冷启动超时 ≥5 秒),输出全部样本与超线数量;frames 先 --reset 计数,操作应用后再读取卡顿百分比与帧时间百分位(60 Hz 预算 16.6 ms,卡顿 <1% 为好);memory 查看 PSS 分类(Java/Native 堆 PSS,应用需运行),重复运行观察泄漏;dexopt 显示 speed-profile 表示启动已优化;trace 抓取无 root 的全系统 Perfetto 跟踪。startup/frames/memory/dexopt 支持 --json。输出给出绑定具名阈值的判定,Perfetto 跟踪输出为 .perfetto-trace 文件,由 Perfetto UI 或 trace_processor 解析。
限制与注意事项:模拟器没有真实 GPU、热与电源行为,数字仅适合找回归与粗略问题,重要结论需真机确认。此处“冷”指进程冷(每次强制停止),非首次安装冷启动,属类似 TTID 的代理,不是 TTFD 或线上 Vitals。帧统计来自 HWUI,可能漏掉 SurfaceView 或 Compose-to-Surface;16.6 ms 假设 60 Hz,高刷需用 Perfetto FrameTimeline。status=verify 仅表示当前未做 profile 引导 AOT 编译,不能证明 profile 缺失;baseline profile 真实信号需用 android-apk-analysis 检查 APK 内的 assets/dexopt/baseline.prof。Perfetto 只抓取不解析,且跟踪内嵌包名、Activity、线程字符串,应视为敏感数据。am start -W 需正确启动 Activity,异常入口可用 --activity pkg/.Comp。内存为 dumpsys meminfo 的 PSS 分类,跨次运行看 PSS 增长判断泄漏。