Android GPU Inspector のクイックスタート

このトピックでは、Android GPU Inspector(AGI)を使用して Android アプリのシステム プロファイリングフレーム プロファイリングを実行する方法について説明します。

このクイックスタートは、Android でのグラフィック開発に精通しているデベロッパーを対象としています。

パソコンの要件

AGI を実行するパソコンは、次の要件を満たしている必要があります。

AGI をダウンロードしてインストールする

ご使用のオペレーティング システムに対応した AGI をダウンロードしてインストールします。

Android アプリの要件

このセクションでは、プロファイリングされる Android アプリの要件について説明します。

  • Android アプリはデバッグ可能でなければなりません。アプリの Android マニフェストのデバッグ可能属性true に設定する必要があります。この属性により、グラフィック ドライバから適切な計測が可能になります。Vulkan アプリの場合、この属性を使用すると、アプリの起動時に AGI が独自の Vulkan レイヤを追加できるようになります。

    <application [...] android:debuggable="true">
    

アプリが Vulkan をネイティブに使用する場合、AGI には以下も必要です。

  • アプリで Vulkan 検証レイヤを有効にする必要があります。有効になっていない場合は、次のコマンドを実行して、AGI APK(com.google.android.gapid.<abi>)に含まれている検証レイヤでアプリを強制的に実行させることができます。

    app_package=<YOUR APP PACKAGE NAME HERE>
    abi=arm64v8a # Possible values: arm64v8a, armeabi-v7a, x86
    
    adb shell settings put global enable_gpu_debug_layers 1
    adb shell settings put global gpu_debug_app ${app_package}
    adb shell settings put global gpu_debug_layer_app com.google.android.gapid.${abi}
    adb shell settings put global gpu_debug_layers VK_LAYER_KHRONOS_validation
    

    プロファイリングが完了したら、次のコマンドを使用して検証レイヤを無効にできます。

    adb shell settings delete global enable_gpu_debug_layers
    adb shell settings delete global gpu_debug_app
    adb shell settings delete global gpu_debug_layers
    adb shell settings delete global gpu_debug_layer_app
    
  • Vulkan 検証レイヤを有効にしてアプリを実行したときは、警告やエラーを報告してはなりません。プロファイリング前に Vulkan 検証エラーを修正します。

  • ベータ版の GPU ドライバを使用している場合は、Android マニフェストの <application> タグに次のメタデータを含めます。

    <meta-data
              android:name="com.android.graphics.developerdriver.enable"
              android:value="true" />
    

Android デバイスの要件

AGI の Android デバイスの要件は次のとおりです。

  • Android 11 以降を搭載している、サポート対象の Android デバイス

  • USB ケーブル。

  • adb デバッグを有効にし、adb を介してデバイスにアクセスできる必要があります。 [Install via USB] オプションが表示されている場合は、有効にします。

デバイスの検証

AGI には、互換性のある GPU ドライバが必要です。有効なプロファイリング データが提供されることを確認するため、AGI は新しいデバイスを初めて接続したときに検証チェックを実行します。これには約 10 秒かかります。チェックに合格すると、デバイスを使用して Android アプリをプロファイリングできます。

検証中はデバイスの操作を停止してください。これにより、デバイスが検証で不合格となる場合があります。デバイスが検証に失敗したが、正しくセットアップされている場合は、デバイスを再選択することで検証を再試行できます。

検証はデバイスにとって 1 回限りのステップであり、後で AGI で使用できるように結果はキャッシュに保存されます。ただし、GPU ドライバや Android バージョンが更新された場合など、デバイスのセットアップが変更された場合、AGI は検証を再度実行します。

デバイスがサポート対象デバイスとしてリストされている場合、AGI が検証に合格する見込みです。デバイスがリストにない場合、GPU ドライバが AGI と互換性がない可能性が高いです。

デバイスはサポートされているが検証で不合格となった場合

前のセクションで説明した Android の要件パソコンの要件をすべて満たし、デバイスが USB ケーブルでパソコンに正しく接続されていることを確認します。

すべての要件を満たしている場合は、GitHub リポジトリで動作について説明した問題を報告してください。

お使いのデバイスがサポートされていない場合

現在、OEM パートナーと連携して、サポート対象のデバイスを拡大すべく取り組んでおります。GitHub リポジトリで問題を送信して、デバイスのサポートをリクエストできます。

プロファイリング データをキャプチャする

以降のセクションでは、プロファイリング データをキャプチャし、結果のトレース ファイルを開いて結果を分析する方法について説明します。

Android の設定

プロファイリングを開始する前に、プロファイリングするアプリとデバイスを指定する Android アプリとデバイスの設定を構成する必要があります。

  1. USB ケーブルを使用して、Android デバイスをパソコンに接続します。

  2. パソコンで AGI を起動します。

    AGI を初めて起動するときは、[Welcome] 画面が表示され、adb 実行可能ファイルのパスの入力を求められます。AGI は、これらの設定を HOME フォルダの .agic ファイルに保存します。すでにこれを行っている場合は、この手順をスキップできます。

    ウェルカム画面
    図 1: ウェルカム画面
  3. [Path to adb] に adb 実行可能ファイルのパスを入力します。このフィールドの後のチェックボックスは省略可能です。

  4. [Get Started] をクリックして起動画面を表示します。

    AGI 起動画面
    図 2: Android GPU Inspector のメイン起動画面
  5. 起動画面で、[Capture a new trace] をクリックします。[Capture A New Trace] ダイアログが表示されます。または、[Capture System Profile trace] ボタンをクリックします。

    [Capture A New Trace] ダイアログ
    図 3: Capture A New Trace ダイアログ
  6. [Device and Type] セクションで、プロファイリングする Android デバイスを選択します。[Device] リストに表示されない場合は、再読み込み矢印をクリックしてリストを更新します。

  7. [Application] セクションで、プロファイリングするアプリを選択します。パッケージ内にアクティビティが 1 つしかない場合は、アクティビティの代わりにパッケージを選択できます。

    AGI には、サンプルアプリの Vulkan アプリが含まれています。独自のアプリではなくサンプルアプリを使用するには、次の手順を行います。

    1. [Application] フィールドの横にある [...] ボタンをクリックします。

      [Select an Application to Trace] ダイアログが表示され、選択したデバイスでトレース可能なアプリのリストが表示されます。

    2. [フィルタ] テキスト ボックスに「gapid」と入力して、パッケージ名に gapid を含むアプリケーションのみを表示します。

    3. パッケージを展開して、com.google.android.gapid.VkSampleActivity を選択し、[OK] をクリックします。

      戻され、[Capture A New Trace] ダイアログに戻り、選択したアプリによって [Application] フィールドにデータが入力されます。

  8. [Application] セクションで、他のフィールドは空白のままにします。

  9. [OK] をクリックします。

これで、AGI を使用してシステムとフレームのプロファイリングを行う準備が整いました。

システムのプロファイリング

システムをプロファイリングするには、次の操作を行います。

  1. AGI 起動画面で [Capture a new trace] をクリックして、[Capture System Profile] ダイアログを表示します。

  2. [Type] リストで [System profile] を選択します。

  3. [Start and Duration] セクションで、[Start at] を [Manual] に、[Duration] を 2 に設定します。

  4. [Trace Options] セクションで、[Configure] をクリックします。プロファイリング オプションのリストが表示されます。

    [Capture Config] ダイアログ
    図 4: [Capture System Profile] ダイアログのプロファイリング オプション。
  5. キャプチャするプロファイリング データを選択します。

  6. [GPU] セクションで、[選択] をクリックします。

    選択するカウンタのリストを表示します。

    カウンタの構成
    図 5: カウンタの選択。
  7. [default] をクリックしてデフォルトのカウンタのセットを選択し、[OK] をクリックしてプロファイリング オプションを返します。

  8. [OK] をクリックして、[Capture System Profile] のメイン ダイアログに戻ります。

  9. [Output] セクションで、[Output Directory] を選択して、プロファイリング中に生成されたトレース ファイルを保存します。[File Name] フィールドは自動入力されますが、編集することもできます。

  10. [OK] をクリックします。これにより、Android デバイスで選択したアプリが起動し、[Start] ボタンを含むポップアップ ウィンドウが表示されます。

  11. [Start] ボタンをクリックしてプロファイリング データの取得を開始し、処理が完了するまで数秒待ちます。

  12. [Open Trace] をクリックします。表示される最初のビューは、systrace と同様です。

    システム プロファイルのトレース
    図 6: システム プロファイラの UI。

    systrace で利用可能なデータに加えて、AGI は GPU のパフォーマンス情報も表示します。システム プロファイリング データの表示については、AGI システム プロファイルの表示をご覧ください。

その他の設定については、システム プロファイリング オプションをご覧ください。

フレームをプロファイリングする

アプリから個々のフレームをプロファイリングするには、次の手順を行います。

  1. AGI 起動画面で [Capture a new trace] をクリックして、[Capture A New Trace] ダイアログを表示します。または、[Capture Frame Profile trace] ボタンをクリックします。

  2. アプリで使用する Graphics API に応じて、[Type] リストで [Vulkan] または [OpenGL on ANGLE] を選択します。正しいものを選択してください。そうしないと、AGI はグラフィック コマンドをキャプチャしません。

  3. [開始と期間] セクションで、[開始] を [手動] に設定します。[Capture Frame Profile trace] ボタンをクリックした場合、この手順はすでに完了しています。

  4. [出力] セクションで、トレース ファイルを保存する [出力ディレクトリ] を選択します。[File Name] フィールドは自動入力されますが、編集することもできます。

  5. 省略可:一部のアプリは、すべてのグラフィック処理を行う別のプロセスを生成します。このプロセスをキャプチャするには、その名前を指定します。

  6. [OK] をクリックします。これにより、Android デバイスでアプリが起動し、[Start] ボタンのあるポップアップ ウィンドウが表示されます。

  7. [Start] ボタンをクリックし、プロファイリングが完了するまで数秒待ちます。

  8. [Open Trace] をクリックして、プロファイリング データが表示されます。Frame Profiler UI の各ペインについては、フレーム プロファイリングの概要をご覧ください。

その他の設定については、フレーム プロファイリング オプションをご覧ください。