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