界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

android-performance

android-performance

【开发与工程】Optimize Android app startup, UI rendering, frame stability, and benchmark performance with Baseline Profiles, Macrobenchmark, and lazy initialization. Use when reducing startup time, diagnosing jank, or measuring rendering; defer Compose state API and test-only questions.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: android-performance description: Optimize Android app startup, UI rendering, frame stability, and benchmark performance with Baseline Profiles, Macrobenchmark, and lazy initialization. Use when reducing startup time, diagnosing jank, or measuring rendering; defer Compose state API and test-only questions. metadata: triggers: files: - '/*Benchmark.kt' - '/*Initializer.kt' keywords: - BaselineProfile - JankStats - recomposition

Android Performance Standards

Priority: P1 (HIGH)

1. Accelerate Startup

  • Generate Baseline Profiles for all production apps — pre-compiles critical paths (30-40% startup improvement).
  • Defer heavy SDK init using App Startup or lazy Singletons. Never block Application.onCreate.

See baseline & startup for lazy initialization patterns.

2. Eliminate UI Jank

  • Use Layout Inspector to find unnecessary recompositions.
  • Load images with Coil/Glide using proper caching and resizing (.crossfade()).
  • LazyColumn must use key and stable item classes.

See baseline & startup for LazyColumn optimization.

3. Avoid Layout Bottlenecks

  • Replace nested weights with ConstraintLayout (Views) or Row/Column with Modifier.weight (Compose).
  • Never hold Activity context in Singletons — use Application context to prevent memory leaks.

Anti-Patterns

  • No Nested Weights: Use ConstraintLayout (Views) or Row/Column (Compose) instead.
  • No Activity Context in Singletons: Use Application context to prevent memory leaks.

References

Canonical response anchors

  • Additional task-grounded exact anchors: Baseline Profile
我的收藏