关于 android-compose-performance
这项技能用于诊断和改善 Android 应用中的 Jetpack Compose 性能,引导开发者进行性能分析和界面决策,并关注稳定状态、无障碍支持和实测优化。
主要功能
- 01识别 Compose、View 或混合界面
- 02改善重组、布局和滚动表现
- 03使用稳定状态与明确副作用
- 04检查长文本、字体缩放、RTL 和窄屏
- 05通过单元、UI 和截图检查验证
适用场景
- 01排查 Compose 列表中的无谓重组
- 02评估状态反复变化时的滚动表现
- 03检查长文本或窄屏下的界面行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-compose-performance安装后在 Claude Code 中输入/android-compose-performance确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android Compose 性能
适用场景
- 在请求涉及以下内容时使用此技能:Compose 性能问题、Android 中重组过多、Compose LazyColumn 滚动缓慢。
- 主要目标:分析并提升 Android 应用中 Compose 的重组、布局、滚动、启动和渲染性能。
- 当范围扩大时,移交给以下技能:
android-performance-observabilityandroid-testing-ui
工作流
- 判断目标界面使用的是 Compose、View 系统,还是混合互操作界面。
- 选择能够满足响应速度、无障碍和性能需求,且实现成本最低的 UI 模式。
- 围绕稳定状态、显式副作用和可复用设计令牌构建 UI。
- 在测试应用中验证长文本、字体缩放、RTL 和窄屏设备等边界情况。
- 交接前通过单元测试、UI 测试和便于截图的检查进行验证。
防护原则
- 优先优化状态稳定性和渲染可预测性,再添加动画或抽象。
- 默认遵循无障碍语义、对比度、焦点顺序和触控目标方面的指导。
- 未明确划定互操作边界时,不要混合使用 Compose 和 View 系统。
- 优先采用基于测量的性能优化,避免过早进行微优化。
反模式
- 在叶级 UI 组件中直接嵌入导航或业务逻辑。
- 使用会因本地化或动态文本而失效的固定尺寸。
- 忽略语义,只播报视觉变化。
- 将 XML 模式直接移植到 Compose,而不调整思维模型。
修复示例
稳定列表标识
LazyColumn {
items(tasks, key = { it.id }) { task ->
TaskRow(task)
}
}
将繁重工作移出组合过程
@Composable
fun TaskBoard(tasks: List<TaskUiModel>) {
val visibleTasks = remember(tasks) { tasks.sortedBy { it.title } }
LazyColumn { items(visibleTasks, key = { it.title }) { TaskRow(it) } }
}
避免滚动变化导致大范围重组
Box(
modifier = Modifier.offset {
IntOffset(0, scrollState.value)
}
)
示例
理想路径
- 场景:分析 Compose 任务列表,找出不必要的重组热点。
- 命令:
cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
边界情况
- 场景:在反复变更状态时,评估长列表、筛选芯片和 Snackbar 频繁变化的表现。
- 命令:
cd examples/orbittasks-compose && ./gradlew :app:assembleDebug
故障恢复
- 场景:将性能请求与通用 Compose 或可观测性提示词区分开来。
- 命令:
python3 scripts/eval_triggers.py --skill android-compose-performance
完成检查清单
- 实现路径清晰、精简,并且针对正确的 Android 界面。
- 已运行或更新相关示例命令和基准测试提示词。
- 当请求涉及相邻技能时,已记录移交事项。
- 官方参考资料涵盖所选模式以及主要迁移或故障排查路径。
官方参考资料
评论
支持 Markdown