ゲームモード介入は、 相手先ブランド製品製造企業(OEM)が設定したゲーム固有の最適化 更新されなくなったゲームのパフォーマンスを向上させるため 開発できます。例:
- WindowManager バックバッファのサイズ変更の使用。
- ネイティブ GLES ドライバの代わりに ANGLE を使用する。
ゲームのサポートを受けながら Game Mode API: これをオーバーライドします OEM が提供するゲームモード介入。
Game Mode API と介入は以下で利用できます。
- Android 12 デバイスを選択する
- Android 13 以降を搭載したデバイス
各ゲームで行えること:
- 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>
ゲームモードを選択するたびに、ゲームを再起動してください。「 ダウンスケーリング介入にはアプリの再起動が必要です。
介入をオプトアウトする
介入をゲームに適用するかどうかを制御できます オプトアウトします。介入ごとに固有のオプトアウト設定があります。
- ゲームのオプトインとオプトアウトの制御に使用するものと同じ設定 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"
/>
- オプトアウトするゲームを再ビルドして再配信します。
デフォルトでは、相手先ブランド製品製造企業により設定された介入は (OEM)は、ゲームで明示的にオプトアウトしない限り、使用されます。
リソース
ゲームのパフォーマンスの測定と最適化について詳しくは、以下をご覧ください。
System Profiler - CPU 使用量とグラフィック呼び出しを分析します。
Android GPU Inspector - Android 上のグラフィックをプロファイリングします。
Android Frame Pacing ライブラリ - OpenGL と Vulkan のゲームでスムーズなレンダリングと正確なフレーム ペーシングを実現するために利用できます。
Android Performance Tuner - 各種の Android デバイスで、大規模にフレームレートとグラフィックを測定し、最適化します。
Energy Profiler - アプリが必要以上にエネルギーを消費している箇所を見つけます。