Spielmodus-Interventionen

Spielmodus-Interventionen sind spielspezifische Optimierungen, die von Erstausrüstern (OEMs) festgelegt wurden, um die Leistung von Spielen zu verbessern, die nicht mehr von Entwicklern aktualisiert werden. Beispiele:

  • Größenänderung des Backbuffers in WindowManager.
  • Verwendung von ANGLE anstelle von nativen GLES-Treibern.

Sie können den Spielesupport in Anspruch nehmen und die Game Mode API verwalten, damit diese die Spielmodus-Interventionen des OEMs überschreiben kann.

Die Game Mode API und die entsprechenden Interventionen sind auf folgenden Geräten verfügbar:

Jedes Spiel kann:

  • Game Mode API-Verhalten implementieren
  • OEMs Einstellungen für Spielmodus-Interventionen vorzuschlagen oder
  • Interventionen des Spielmodus explizit deaktivieren

Hintergrund

In diesem Abschnitt wird beschrieben, was die Spielmodus-Aktionen bewirken und wie Sie Ihr Spiel für jeden Modus optimieren können.

Größenänderung des WindowManager-Backbuffers

Der WindowManager-Backbuffer-Eingriff zur Größenanpassung kann die GPU-Last eines Geräts reduzieren. Außerdem kann der Akkuverbrauch verringert werden, wenn ein Spiel mit einer Ziel-Framerate wiedergegeben wird.

Wenn Sie die Größenanpassung aktivieren, kann dies zu einer Reduzierung der GPU-Nutzung und 10 % des gesamten Energieverbrauchs des Systems führen. Die Ergebnisse können je nach verwendetem Gerät, Umgebungsbedingungen und anderen Faktoren wie der gleichzeitigen Verarbeitung variieren.

Bei einem nicht temporeichen Spiel, das GPU-gebunden ist, ist bei geringeren GPU-Lasten wahrscheinlich eine höhere Framerate zu erwarten.

Wir empfehlen dringend, für alle Spiele ein gutes Tempo zu verwenden, da ungleiche Framerates den Leistungseindruck der Nutzer erheblich beeinträchtigen.

fps-Drosselung

Die FPS-Drosselung bei Android ist eine Eingabeaufforderung im Spielmodus, mit der Spiele mit einer stabileren Framerate ausgeführt werden können, um den Akku zu schonen. Die Aufforderung ist ab Android 13 verfügbar. Weitere Informationen finden Sie in der Übersicht zur FPS-Drosselung.

Interventionen des Spielmodus bewerten

In diesem Abschnitt wird der Befehl adb verwendet.

Modi einrichten

Sie müssen Spielmodi in der Spielmodus-Konfigurationsdatei der App deaktivieren, bevor Sie die Spielmodus-Interventionen testen. Andernfalls werden sie von der Plattform umgangen und nur Optimierungen im Spiel berücksichtigt.

<?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"
/>

Optional: Vorhandene Gerätekonfiguration sichern

Für Pixel oder andere Geräte ist in Ihrer Gerätekonfiguration möglicherweise bereits eine Konfiguration für die Spieleintervention vorhanden. Sie können die Konfiguration mit dem folgenden Befehl abfragen:

adb shell device_config get game_overlay <PACKAGE_NAME>

Wenn die Abfrage null zurückgibt, wird die vorhandene Konfiguration ignoriert. Andernfalls speichern Sie ihn und setzen Sie ihn nach der Bewertung zurück.

Maßnahmen bewerten

Wenn Sie die Maßnahme zur Größenanpassung des WindowManager-Backbuffers eigenständig evaluieren möchten, verwenden Sie den folgenden Befehl, um verschiedene WindowManager-Werte für die Anpassung der Zwischenspeichergröße in den Spielmodi festzulegen.

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

Im Beispiel oben ist mode=2 „Leistung“ und mode=3 „Energiesparmodus“. Der Wert downscaleFactor wird als Prozentsatz für die Größenanpassungseinstellung angegeben (z.B.0, 7 entspricht 70% und 0, 8 ist 80%). Eine Größenänderung von 90 % (0,9) ist fast vernachlässigbar, während 50% (0,5) von Bedeutung sind.

Warnung:Untergeordnete Prozesse können in Android 12 möglicherweise nicht richtig angepasst werden. Achten Sie vor allem darauf, dass Toasts und Pop-ups korrekt gerendert werden. Wir empfehlen, die Einstellung auf mindestens 70 % zu beschränken.

Nachdem die neuen Größenänderungs-Werte eingerichtet sind, wechseln Sie zwischen Spielmodi, um zu sehen, wie Ihr Spiel von der WindowManager-Maßnahme zur Größenanpassung des Backbuffers beeinflusst wird:

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

Das Spiel muss nach jeder Auswahl des Spielmodus neu gestartet werden. Die Herunterskalierungsmaßnahme erfordert einen Neustart der Anwendung.

Aufforderungen ablehnen

Du kannst festlegen, ob ein Eingreifen in deinem Spiel erfolgen soll, indem du die Option deaktivierst. Jede Aufforderung hat ihre eigene Deaktivierungseinstellung.

  1. Die gleiche XML-Konfigurationsdatei, die zum Steuern des An- und Deaktivierens von Spielmodi verwendet wird, wird auch für die Interventionseinstellungen verwendet:
<?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. Wenn du die Teilnahme beenden möchtest, musst du dein Spiel neu erstellen und noch einmal einreichen.

Standardmäßig werden die von den Erstausrüstern (OEMs) festgelegten Maßnahmen verwendet, es sei denn, du deaktivierst sie ausdrücklich für dein Spiel.

Ressourcen

Weitere Informationen zum Messen und Optimieren der Spieleleistung:

  • System-Profiler – Analysieren Sie die CPU-Auslastung und Grafikaufrufe.

  • Android GPU Inspector: Profilgrafiken unter Android

  • Android Frame Pacing Library: Diese Option hilft OpenGL- und Vulkan-Spielen, ein reibungsloses Rendering und eine korrekte Frame-Taktung zu erreichen.

  • Android Performance Tuner: Hiermit kannst du die Framerate und Grafiken auf allen Android-Geräten im großen Maßstab messen und optimieren.

  • Energy Profiler – Mit diesem Tool können Sie feststellen, wo Ihre App mehr Energie als nötig verbraucht.