このトピックでは、Android GPU Inspector(AGI)を使用して Android アプリで システム プロファイリングと フレーム プロファイリング を行う方法について説明します。
このクイックスタートは、Android でのグラフィック開発に精通しているデベロッパーを対象としています。
コンピュータの要件
AGI を実行するパソコンは、次の要件を満たしている必要があります。
次のいずれかのオペレーティング システムが必要です。
Windows: Windows 7 以降。
macOS: El Capitan(10.11)以降。
Linux: Java 64 ビット JDK または JRE 8(以降)が必要です。 Ubuntu Trusty Tahr(14.04 以降) をおすすめします。
AGI をダウンロードしてインストールする
ダウンロードして、オペレーティング システム用の AGI をインストールします。
Android アプリの要件
このセクションでは、プロファイリングする Android アプリの要件について説明します。
Android アプリはデバッグ可能である必要があります。アプリの Android マニフェストの debuggable 属性 を
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_appVulkan 検証レイヤを有効にして実行した場合、アプリで警告やエラーが報告されないようにする必要があります。プロファイリングを行う前に、Vulkan 検証エラーを修正してください。
ベータ版の GPU ドライバを使用している場合は、Android マニフェストの
<application>タグに次のメタデータを含めます。<meta-data android:name="com.android.graphics.developerdriver.enable" android:value="true" />
Android デバイスの要件
AGI には、次の Android デバイスの要件があります。
サポート対象の Android デバイスで、 Android 11 以降を搭載しているもの。
USB ケーブル。
adb デバッグを有効にし、adb でデバイスにアクセスできるようにする必要があります。 [Install via USB] オプションが表示されている場合は、有効にします。
デバイスの検証
AGI には、互換性のある GPU ドライバが必要です。有効なプロファイリング データを提供するために、AGI は新しいデバイスを初めて接続するときに検証チェックを実行します。これには約 10 秒かかります。チェックに合格すると、デバイスを使用して Android アプリをプロファイリングできます。
検証中はデバイスを操作しないでください。デバイスの検証に失敗する可能性があります。デバイスの検証に失敗したが正しく設定されている場合は、デバイスを再選択して検証を再試行できます。
検証はデバイスに対して 1 回限りの手順であり、結果は AGI の今後の使用のためにキャッシュに保存されます。ただし、GPU ドライバや Android バージョンが更新されるなど、デバイスの設定が変更された場合は、AGI は検証を再度実行します。
デバイスがサポート対象デバイスとしてリストされている場合、AGI は 検証に合格します。デバイスがリストにない場合、その GPU ドライバは AGI と互換性がない可能性があります。
デバイスがサポートされているが検証に失敗する場合
前のセクションで説明した Android の要件と パソコンの要件をすべて満たしていること、および デバイスが USB ケーブルでパソコンに正しく接続されていることを確認してください。
すべての要件を満たしている場合は、 GitHub リポジトリで問題を報告し、動作について説明してください。
デバイスがサポートされていない場合
Google は OEM パートナーと協力して、より多くのデバイスのサポートを追加しています。GitHub リポジトリで問題を報告して、デバイスのサポートをリクエストできます。
プロファイリング データをキャプチャする
以降のセクションでは、プロファイリング データをキャプチャし、結果のトレース ファイルを開いて結果を分析する方法について説明します。
Android の設定を構成する
プロファイリングを開始する前に、プロファイリングするアプリとデバイスを指定する Android アプリとデバイスの設定を構成する必要があります。
USB ケーブルを使用して Android デバイスをパソコンに接続します。
パソコンで AGI を起動します。
AGI を初めて起動すると、[Welcome] 画面が表示され、adb 実行可能ファイルのパスを入力するよう求められます。AGI はこれらの設定を
HOMEフォルダの.agicファイルに保存します。すでに完了している場合は、この手順をスキップできます。
図 1: [Welcome] 画面。 [Path to adb] フィールドに adb 実行可能ファイルのパスを入力します。このフィールドの後のチェックボックスは省略可能です。
[Get Started] をクリックして、起動画面を表示します。
図 2: Android GPU Inspector のメイン起動画面。 起動画面で [Capture a new trace] をクリックします。[Capture A New Trace] ダイアログが表示されます。または、[Capture System Profile trace] ボタンをクリックすることもできます。
図 3: [Capture A New Trace] ダイアログ。 [Device and Type] セクションで、プロファイリングする Android デバイスを選択します。[Device] リストに表示されない場合は、再読み込み矢印をクリックしてリストを更新します。
[Application] セクションで、プロファイリングするアプリを選択します。パッケージにアクティビティが 1 つしかない場合は、アクティビティではなくパッケージを選択できます。
AGI には、Vulkan サンプルアプリが含まれています。独自のアプリではなくサンプルアプリを使用するには、次の手順を行います。
[Application] フィールドの横にある [...] ボタンをクリックします。
選択したデバイスでトレース可能なアプリのリストが表示される [Select an Application to Trace] ダイアログが表示されます。
[Filter] テキスト ボックスに「
gapid」と入力して、パッケージ名にgapidを含むアプリのみを表示します。パッケージを展開して [com.google.android.gapid.VkSampleActivity] を選択し、[OK] をクリックします。
[Capture A New Trace] ダイアログに戻り、[Application] フィールドに選択したアプリが入力されます。
[Application] セクションで、他のフィールドは空のままにします。
[OK] をクリックします。
これで、AGI を使用してシステムとフレームのプロファイリングを行う準備ができました。
システムをプロファイリングする
システムをプロファイリングする手順は次のとおりです。
AGI 起動画面で [Capture a new trace] をクリックして、[Capture System Profile] ダイアログを表示します。
[Type] リストで [System profile] を選択します。
[Start and Duration] セクションで、[Start at] を [Manual] に、 および [Duration] を
2に設定します。[Trace Options] セクションで [Configure] をクリックします。プロファイリング オプションのリストが表示されます。
図 4: [Capture System Profile] ダイアログのプロファイリング オプション。 キャプチャするプロファイリング データを選択します。
[GPU] セクションで [Select] をクリックします。
選択するカウンタのリストが表示されます。
図 5: カウンタの選択。 [default] をクリックしてデフォルトのカウンタのセットを選択し、[OK] をクリックしてプロファイリング オプションに戻ります。
[OK] をクリックして、メインの [Capture System Profile] ダイアログに戻ります。
[Output] セクションで、プロファイリング中に生成されるトレース ファイルを保存する出力ディレクトリ を選択します。[File Name] フィールドは自動入力されますが、編集することもできます。
[OK] をクリックします。Android デバイスで選択したアプリが起動し、[Start] ボタンを含むポップアップ ウィンドウが表示されます。
[Start] ボタンをクリックしてプロファイリング データのキャプチャを開始し、プロセスが完了するまで数秒待ちます。
[Open Trace] をクリックします。表示される最初のビューは systraceと似ています。
図 6: システム プロファイラ UI。 AGI には、systrace で使用できるデータに加えて、GPU のパフォーマンス情報も表示されます。システム プロファイリング データの表示について詳しくは、AGI システム プロファイルを表示するをご覧ください。
その他の設定については、 システム プロファイリング オプションをご覧ください。
フレームをプロファイリングする
アプリの個々のフレームをプロファイリングする手順は次のとおりです。
AGI 起動画面で [Capture a new trace] をクリックして、[Capture A New Trace] ダイアログを表示します。または、[Capture Frame Profile trace] ボタンをクリックすることもできます。
[Type] リストで、アプリが使用する Graphics API に応じて [Vulkan] または [OpenGL on ANGLE] を選択します。正しいものを選択してください。そうしないと、AGI はグラフィック コマンドをキャプチャしません。
[Start and Duration] セクションで、[Start at] を [Manual] に設定します。[Capture Frame Profile trace] ボタンをクリックした場合、この手順はすでに完了しています。
[Output] セクションで、トレース ファイルを保存する出力ディレクトリ を選択します。[File Name] フィールドは自動入力されますが、編集することもできます。
省略可: 一部のアプリでは、すべてのグラフィック処理を行う別のプロセスが生成されます。そのプロセスをキャプチャするには、その名前を指定します。
[OK] をクリックします。Android デバイスでアプリが起動し、[Start] ボタンを含むポップアップ ウィンドウが表示されます。
[Start] ボタンをクリックし、プロファイリングが完了するまで数秒待ちます。
[Open Trace] をクリックして、プロファイリング データを表示します。Frame Profiler UI の各 ペインについては、 フレーム プロファイリングの概要をご覧ください。
その他の設定については、 フレーム プロファイリング オプションをご覧ください。