概要

ProfilingManager API を使用すると、Android 15(API レベル 35)以降を搭載した本番環境デバイスから、システム トレースや Java ヒープダンプなどの実際のユーザーのパフォーマンス プロファイルを収集できます。2 つの収集メカニズムをサポートしています。1 つは、アプリがプロファイルの収集を開始から停止まで制御するアプリ主導のプロファイル(Android 15 以降)、もう 1 つは、Android 16(API レベル 36)以降で、関心のあるイベントに応じてシステムがキャプチャを処理するトリガーベースのプロファイルです。

このガイドの内容は次のとおりです。

サポートされているプロファイル タイプ

ProfilingManager は、アプリの特定のパフォーマンスの問題をターゲットにできるように、いくつかのタイプのプロファイルの収集をサポートしています。プラットフォーム API を使用して直接リクエストを構成することも、AndroidX Core ビルダーを使用することもできます。

  • システム トレース: PROFILING_TYPE_SYSTEM_TRACE または SystemTraceRequestBuilder を使用してキャプチャされます。
    • ジャンクの診断、レイテンシの分析、一般的なパフォーマンスのデバッグに役立ちます。
  • Java ヒープダンプ: PROFILING_TYPE_JAVA_HEAP_DUMP または JavaHeapDumpRequestBuilder を使用してキャプチャされます。
    • メモリリークの検出とメモリの最適化のために、アプリの Java ヒープ オブジェクト グラフとサイズのスナップショットをキャプチャします。
  • ヒープ プロファイル: PROFILING_TYPE_HEAP_PROFILE または HeapProfileRequestBuilder を使用してキャプチャされます。
    • ネイティブ(または必要に応じて Java)メモリ割り当てを時系列で追跡して、メモリ使用量の最適化を支援します。
  • スタック サンプリング: PROFILING_TYPE_STACK_SAMPLING または StackSamplingRequestBuilder を使用してキャプチャされます。
    • スレッドのコールスタックをサンプリングして、コード実行を把握し、CPU 使用率を分析できるようにします。

ProfilingManager を AI エージェントと統合する

AI コーディング エージェントを使用して、ProfilingManager をアプリに統合できます。たとえば、AI コーディング エージェントで次のプロンプトを実行して、アプリケーション応答なし(ANR)トリガーの収集を設定します。</path/to/codebase> はアプリのパスに置き換えます。

Read https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture
and https://developer.android.com/topic/performance/tracing/profiling-manager/upload-worker
and integrate ProfilingManager ANR trigger collection (TRIGGER_TYPE_ANR) into my
app at </path/to/codebase>, including registering the result listener after app
startup completes and scheduling a WorkManager upload job when a profile is
received.

このプロンプトを調整して、他のシステム トリガー(TRIGGER_TYPE_OOM など)を設定したり、アプリ駆動型プロファイリング ガイドを使用してアプリ駆動型プロファイル キャプチャを構成したりできます。統合後、ローカル プロファイリング用のデバッグ コマンドを使用して設定をローカルでテストし、AI エージェントを使用して収集されたプロファイルを分析します。