ゲームモード介入

ゲームモード介入は、 相手先ブランド製品製造企業(OEM)が設定したゲーム固有の最適化 更新されなくなったゲームのパフォーマンスを向上させるため 開発できます。例:

  • WindowManager バックバッファのサイズ変更の使用。
  • ネイティブ GLES ドライバの代わりに ANGLE を使用する。

ゲームのサポートを受けながら Game Mode API: これをオーバーライドします OEM が提供するゲームモード介入。

Game Mode API と介入は以下で利用できます。

各ゲームで行えること:

  • Game Mode API の動作を実装する
  • ゲームモード介入の設定を OEM に提案する
  • ゲームモード介入を明示的にオプトアウトします。
で確認できます。

背景

このセクションでは、ゲームモード介入の機能と最適化方法について説明します。 調整できます。

WindowManager バックバッファのサイズ変更

WindowManager バックバッファのサイズを変更する介入により、デバイスの GPU 負荷を軽減できます。また、目標フレームレートでゲームがペーシングされるときのバッテリー消費量も削減できます。

サイズ変更を有効にすると、GPU の最大 30%、全体の 10% を削減できます。 自動的に消費します。削減結果は、使用するデバイス、環境条件、およびその他の要因(同時処理など)によって異なります。

ペーシングされていない GPU バウンドのゲームは、GPU の負荷が軽減されるとフレームレートが高くなる可能性があります。

すべてのゲームについて、 フレームレートが大幅に不均一で、良好なペースである 影響するためです

FPS スロットリング

Android FPS スロットリングはゲームモード介入で、 安定したフレームレートでバッテリー消費を抑えます。介入は Android 13 以降で利用できます。詳細情報 詳しくは、FPS スロットリングの概要をご覧ください。

ゲームモード介入を評価する

このセクションでは、adb コマンドを使用します。

モードをセットアップする

ゲームモードは、アプリの ゲームモード構成ファイル テストしてから、ゲームモード介入をテストします。それ以外の場合、プラットフォームは ゲーム内の最適化のみを尊重します。

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(省略可)既存のデバイス設定をバックアップする

Google Pixel やその他のデバイスの場合、既存のゲーム介入が存在することがあります。 使用します。次のコマンドを使用して構成をクエリできます。

adb shell device_config get game_overlay <PACKAGE_NAME>

クエリで null が返された場合は、既存の構成を無視します。それ以外の場合は、保存してください。 評価後にリセットできます

介入を評価する

WindowManager バックバッファのサイズ変更介入を単独で評価するには、 異なる WindowManager バッファのサイズ変更値を設定するには、 ゲームモードです。

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

上記の例では、mode=2 は「Performance」、mode=3 は「Performance」です。 [バッテリー セーバー] を選択します。downscaleFactor の値は、 は、サイズ変更の設定に適用されます(例: 0.7 は 70%、0.8 は 80%)。90% 50%(0.5)は重要です。

警告: Android 12 では、子プロセスのサイズ変更が正しく行われない場合があります。イン トーストやポップアップが正しく表示されるようにしてください。水 サイズ変更の設定は 70% 以上に制限することをおすすめします。

新しいサイズ変更値を設定したら、ゲームモードを切り替えて結果を確認します。 ゲームが WindowManager バックバッファのサイズ変更介入の影響を受ける場合:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

ゲームモードを選択するたびに、ゲームを再起動してください。「 ダウンスケーリング介入にはアプリの再起動が必要です。

介入をオプトアウトする

介入をゲームに適用するかどうかを制御できます オプトアウトします。介入ごとに固有のオプトアウト設定があります。

  1. ゲームのオプトインとオプトアウトの制御に使用するものと同じ設定 XML ファイル モードは介入の設定にも使用されます。
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. オプトアウトするゲームを再ビルドして再配信します。

デフォルトでは、相手先ブランド製品製造企業により設定された介入は (OEM)は、ゲームで明示的にオプトアウトしない限り、使用されます。

リソース

ゲームのパフォーマンスの測定と最適化について詳しくは、以下をご覧ください。

  • System Profiler - CPU 使用量とグラフィック呼び出しを分析します。

  • Android GPU Inspector - Android 上のグラフィックをプロファイリングします。

  • Android Frame Pacing ライブラリ - OpenGL と Vulkan のゲームでスムーズなレンダリングと正確なフレーム ペーシングを実現するために利用できます。

  • Android Performance Tuner - 各種の Android デバイスで、大規模にフレームレートとグラフィックを測定し、最適化します。

  • Energy Profiler - アプリが必要以上にエネルギーを消費している箇所を見つけます。