mcpField
A
android-performance-observability

android-performance-observability

github.com/krutikjain開発1466 回インストール31 週間前に更新
リポジトリ

android-performance-observability について

プロファイリングとオブザーバビリティで Android アプリの性能を調べるスキルです。起動、描画、メモリ、信頼性、本番環境の指標に合った計測方法を選び、再現可能な変更前後の比較を支援します。

主な機能

  1. 01性能症状の分類
  2. 02症状に合う計測ツールの選定
  3. 03リリース相当ビルドのプロファイリング
  4. 04変更前後の証拠の比較
  5. 05本番指標とクラッシュの確認

活用シーン

  1. 01アプリ起動の遅さの調査
  2. 02フレームのカクつきやスクロールの計測
  3. 03メモリ、ANR、クラッシュの評価
  4. 04本番指標の変化の追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/krutikjain/android-agent-skills --skill android-performance-observability

インストール後、Claude Code で/android-performance-observabilityを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
official-links.md
patterns.md
scenarios.md
scripts/
run_examples.sh

詳細

Android パフォーマンスの可観測性

使用する場面

  • 次の内容に関する依頼でこのスキルを使用します:Android のパフォーマンスプロファイリング、ベースラインプロファイルまたはマクロベンチマーク、Android アプリの起動時の問題。
  • 主な成果:実行可能なトレースを用いて、Android アプリの起動、レンダリング、メモリ、ジャンク、バイタル、ログ、クラッシュのシグナルを測定します。
  • 起動、ジャンク、トレース、本番環境のシグナルに関する測定手順が必要な場合は、references/patterns.md を読みます。
  • 繰り返し実行可能なプロファイリングとトレースを中心としたエントリーポイントについては、references/scenarios.md を読みます。
  • 対象範囲が広がる場合は、次のスキルに引き継ぎます:
  • android-compose-performance
  • android-ci-cd-release-playstore

ワークフロー

  1. ツールを選ぶ前に症状を分類します:コールドスタート、ウォームスタート、フレーム/ジャンク、スクロール、メモリ、ANR、クラッシュ、バッテリー、または本番環境のバイタルの変化。
  2. 可能な限り、リリース版に近いビルドと実機で測定します。デバッグ専用のトレースやプロファイルに適さないビルドを根拠にすることは避けます。
  3. 問いに答えるための最小限のツールを選びます:起動やスクロールの数値には Macrobenchmark、事前最適化には Baseline Profiles、詳細なトレースには Perfetto/System Tracing、フレーム品質には JankStats または FrameMetrics、実環境のエビデンスには Play Vitals を使用します。
  4. 一度に変更するのは一つだけにし、複数の最適化を無計画に重ねるのではなく、変更前後のトレースまたはベンチマーク出力を比較します。
  5. 測定対象が安定し、ボトルネックがエビデンスで確認されてから、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

コメント