prasad-vennam/awesome-android-ai-agent-skills

android-performance-audit

Use when profiling Android apps, debugging memory leaks, optimizing Compose UI, or improving app startup time.

查看源码

使用方法

  1. 复制安装命令,在自己的智能体环境安装前先检查源码包。
  2. 从原始文档核对所需工具、凭据和支持的宿主。
  3. 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-performance-audit

开始前需了解

  • 安装不包含模型订阅、API 额度或访问文件的权限。
  • 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

Android Performance Auditing 🚀⏱️

Expert strategies for profiling and optimizing Android applications to ensure smooth, responsive, and efficient user experiences.

⚡ When to Use

  • UI Lag: Fixing jank in lists or complex Compose layouts.
  • Memory Issues: Debugging OutOfMemoryError or high memory growth.
  • App Startup: Reducing the time from icon tap to first usable frame.
  • Battery Drain: Identifying excessive network calls or background work.
  • Leak Detection: Investigating persistent objects after activity destruction.

🛠️ Main Tools

1. Android Studio Profiler

  • CPU Profiler: Inspect call stacks and thread activity.
  • Memory Profiler: Capture heap dumps and track allocations.
  • Network Profiler: Analyze traffic and payload sizes.
  • Energy Profiler: Monitor battery impact.

2. LeakCanary

  • Rule: ALWAYS include LeakCanary in debug builds.
  • Use it to detect memory leaks automatically during development.

🎥 Compose Optimization

  • [ ] Recomposition Tracking: Use the "Layout Inspector" in Android Studio to count recompositions.
  • [ ] Stability Rules: Use @Stable or @Immutable on domain models to help the Compose compiler.
  • [ ] Lambda Stability: Avoid pass-through lambdas that capture unstable variables; use method references where possible.
  • [ ] remember & derivedStateOf: Minimize expensive calculations within the composition loop.

🏁 App Startup Optimization

  • Baseline Profiles: Use Baseline Profiles to pre-compile critical code paths (AOT) to improve startup by up to 30%.
  • Lazy Initialization: Use Lazy or Hilt entry points to avoid unnecessary object creation during Application.onCreate.
  • App Startup Library: Utilize androidx.startup for organized component initialization.

📦 Memory Management Checklist

  • [ ] Context Leaks: Ensure no long-lived references to Activity context (use ApplicationContext if possible).
  • [ ] Bitmap Scaling: Never load full-resolution bitmaps into small Image views. Use Coil with size() transformations.
  • [ ] Flow/Coroutine Cleanup: Use viewModelScope to ensure background tasks are canceled with the UI.

🧪 Benchmarking

  • Macrobenchmark: Measure high-level user interactions (Startup, Scrolling).
  • Microbenchmark: Measure isolated code loops or CPU-intensive algorithms.

🔗 Related Resources

按任务相关推荐

来自同一仓库

更多 Skills

全部 Skills