关于 android-performance-observability
用于通过性能分析和可观测性调查 Android 应用性能的技能,指导开发者针对启动、渲染、内存、稳定性和线上指标选择测量方式,并进行可复现的前后对比。
主要功能
- 01分类性能症状
- 02按症状选择测量工具
- 03分析接近发布版的构建
- 04比较优化前后证据
- 05检查线上指标与崩溃
适用场景
- 01调查应用启动缓慢
- 02测量卡顿与滚动表现
- 03评估内存、ANR 或崩溃
- 04跟踪线上指标变化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-performance-observability安装后在 Claude Code 中输入/android-performance-observability确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android 性能可观测性
适用场景
- 当请求涉及以下内容时使用此技能:Android 性能分析、基线配置文件或宏基准测试、Android 应用启动问题。
- 主要目标:通过可操作的跟踪信息,测量 Android 应用的启动、渲染、内存、卡顿、运行状况指标、日志和崩溃信号。
- 当需要了解启动、卡顿、跟踪和生产环境信号的测量阶梯时,请阅读
references/patterns.md。 - 如需可重复的性能分析方法和以跟踪为导向的入口点,请阅读
references/scenarios.md。 - 范围扩大时,交接给以下技能:
android-compose-performanceandroid-ci-cd-release-playstore
工作流
- 选择工具前,先对症状分类:冷启动、热启动、帧渲染/卡顿、滚动、内存、ANR、崩溃、电池或生产环境运行状况指标变化。
- 尽可能在接近发布版的构建和实体设备上进行测量;避免依据仅用于调试的跟踪信息或不利于性能分析的构建做判断。
- 选择能回答问题的最精简工具:使用 Macrobenchmark 测量启动/滚动数据,使用 Baseline Profiles 进行提前优化,使用 Perfetto/System Tracing 深入分析跟踪信息,使用 JankStats 或 FrameMetrics 评估帧质量,并使用 Play Vitals 获取实际使用情况的证据。
- 一次只更改一项,然后比较更改前后的跟踪信息或基准测试输出,避免盲目叠加多项优化。
- 只有在测量范围稳定且瓶颈已有证据支持后,才将 UI 特定的渲染更改或发布推广工作交接出去。
注意事项
- 将基准测试、跟踪信息和运行状况指标视为不同的证据来源,它们各自的噪声特征不同;不要随意混用。
- 优先采用可重复的发布版构建测量结果,而不是依据调试版构建进行推测。
- 将优化与面向用户的指标联系起来,例如启动时间、帧节奏、ANR 或电池影响。
- 保持性能分析环境足够稳定,确保回归问题可归因于代码更改,而非设备或环境变化。
反模式
- 尚未确定问题属于启动、渲染、I/O 还是实际使用可靠性,就开始追逐微优化。
- 读取一份噪声较大的跟踪信息,就将结果当作定论。
- 测量调试版构建后,便假设生产环境中的表现相同。
- 未确认目标路径是否足够稳定、可供比较,就添加 Baseline Profiles 或宏基准测试。
审查重点
- 启动:冷启动和热启动、耗时较长的初始化,以及 Baseline Profile 的覆盖情况。
- 渲染:卡顿、跳帧、Compose 或 View 的失效变更,以及主线程上的长时间任务。
- 内存与可靠性:内存分配、泄漏、ANR、崩溃和 Play Vitals 趋势。
- 证据质量:可重复执行的命令、接近发布版的变体,以及有记录的前后对比。
示例
顺利路径
- 场景:在提出测量计划前,检查代码库中的性能分析入口和基准测试相关钩子。
- 命令:
rg -n "baseline|macrobenchmark|profileable|JankStats|Trace|Perfetto" .
边缘情况
- 场景:确保启动和渲染调查以可重复的接近发布版构建为依据。
- 命令:
cd examples/orbittasks-compose && ./gradlew :app:assembleDebug
故障恢复
- 场景:将可观测性请求与仅涉及 Compose 调优或发布自动化的工作区分开来。
- 命令:
python3 scripts/eval_triggers.py --skill android-performance-observability
完成清单
- 已对瓶颈进行分类,并将其与可重复运行的证据来源关联起来。
- 所选工具与症状相匹配,而非重复采集噪声较大的测量结果。
- 对任何建议的优化,都明确列出了更改前后的对比。
- 仅涉及 UI 或发布的工作与测量和跟踪分开处理。
Official References
- https://developer.android.com/studio/profile/overview
- https://developer.android.com/topic/performance/vitals
- https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview
- https://developer.android.com/topic/performance/benchmarking/macrobenchmark-metrics
- https://developer.android.com/topic/performance/baselineprofiles/overview
- https://developer.android.com/topic/performance/tracing
- https://developer.android.com/topic/performance/rendering/jankstats
评论
支持 Markdown