Game Mode API

Mit der Game Mode API können Sie Ihr Spiel für die beste Leistung oder die längste Akkulaufzeit optimieren, wenn der Nutzer den entsprechenden Spielmodus auswählt.

Alternativ können Sie Anfragen für Spielmodus-Interventionen senden, um die Leistung von Spielen zu verbessern, die nicht mehr von Entwicklern aktualisiert werden.

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

Jedes Spiel kann das Verhalten der Game Mode API implementieren, OEMs Einstellungen für Spielmodusinterventionen vorschlagen oder Spielmodus-Interventionen deaktivieren.

Einrichten

So verwenden Sie die Game Mode API in Ihrem Spiel:

  1. Lade das Android 13 SDK herunter und installiere es.

  2. Deklarieren Sie in der Datei AndroidManifest.xml Ihre App als Spiel, indem Sie das Attribut appCategory im Element <application> festlegen:

android:appCategory="game"
  1. Fragen Sie den aktuellen Spielmodus ab, indem Sie Folgendes zu Ihrer Hauptaktivität hinzufügen:

Java

// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
  // Get GameManager from SystemService
  GameManager gameManager = Context.getSystemService(GameManager.class);

  // Returns the selected GameMode
  int gameMode = gameManager.getGameMode();
}

Kotlin

// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  // Get GameManager from SystemService
  val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?

  // Returns the selected GameMode
  val gameMode = gameManager?.gameMode
}
Unterstützter Spielmodus Beschreibung
NICHT UNTERSTÜTZT Das Spiel deklariert weder Unterstützung für die Game Mode API noch unterstützt es Spielmodus-Interventionen.
STANDARD Der Nutzer hat keinen Spielmodus oder den Standardmodus ausgewählt.
AUFFÜHRUNG Bietet die niedrigsten Latenz-Framerates im Austausch für eine reduzierte Akkulaufzeit und Grafikqualität.
BATTERIEN Er sorgt für die längste Akkulaufzeit und verringert gleichzeitig die Wiedergabequalität oder Framerates.
  1. Fügen Sie Code hinzu, um den Spielmodusstatus in der Funktion onResume abzufragen:

    Beispiel für die Einstellung des Akkumodus durch den Nutzer

Best Practices

Wenn Ihr Spiel bereits mehrere Ziele für Fidelity und Framerate unterstützt, sollten Sie die entsprechenden Einstellungen für den Leistungs- und Energiesparmodus festlegen:

  • Um konsequent die maximalen Framerates für das Gerät zu erreichen, solltest du geringfügige Reduzierungen der Grafikqualität in Betracht ziehen, um höhere Framerates zu erzielen.

  • Zur Verlängerung der Akkulaufzeit: Wähle eine niedrigere Aktualisierungsrate für das Display (z.B. 30 Hz oder 60 Hz) und verwende Frame-Taktung, um die reduzierte Rate zu erreichen.

Bei High-Fidelity-Spielen wie Ego-Shootern, Multiplayer Online Battle Arenen (MOBAs) und Rollenspielen (RPGs) sollten Sie sich auf hohe konsistente Framerates konzentrieren, um das Eintauchen der Nutzer zu maximieren.

Sowohl bei High-Fidelity- als auch bei Casual Games sollte der Energiesparmodus aktiviert werden, um die Spieldauer zu erhöhen und Spitzen-Framerates zu reduzieren.

Unterstützung für Spielmodi deklarieren

Wenn Sie die Unterstützung für Spielmodi deklarieren und Spielmodus-Interventionen durch OEMs überschreiben möchten, fügen Sie zuerst die Spielmoduskonfiguration dem <application>-Element in der AndroidManifest.xml-Datei hinzu:

<application>
    <meta-data android:name="android.game_mode_config"
               android:resource="@xml/game_mode_config" />
  ...
</application>

Erstellen Sie dann im Verzeichnis res/xml/ Ihres Projekts die Datei game_mode_config.xml mit folgendem Inhalt:

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

Spielmodi wechseln

Um zwischen den Spielmodi zu wechseln, können Sie das Dashboard für Spiele (verfügbar auf Pixel-Geräten) oder ähnliche Anwendungen von OEMs verwenden. Alternativ können Sie während der Entwicklung den Shell-Befehl für den Spielmodus verwenden.

Wenn Sie das Dashboard für Spiele verwenden und das Optimierungssymbol bei der Veröffentlichung Ihres Spiels nicht angezeigt wird, müssen Sie Ihre App möglicherweise in die Google Play Console hochladen und über den Play Store installieren. Informationen zu App-Tests im Play Store finden Sie unter App Bundles und APKs intern freigeben.

Dashboard für Spiele – Aktivität! Abbildung 1: Dashboard für Spiele, das auf einem Pixel-Gerät das laufende Spiel überlagert

In Abbildung 1 kann der Spielmodus des Laufspiels über das Optimierungs-Widget geändert werden. Wie im Widget zu sehen ist, wird das Spiel derzeit im PERFORMANCE-Modus ausgeführt.

Wenn Sie während der Entwicklung ein Gerät ohne Dashboard für Spiele verwenden und der Hersteller keine Möglichkeit anbietet, den Spielmodus für jede App festzulegen, können Sie den Status des Spielmodus über adb ändern:

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

Beispiel-App

Das Game Mode API-Beispiel zeigt, wie Sie die fps und die Obergrenzen für die Renderingauflösung optimieren können, um den Akku Ihrer Apps um etwa 25% zu sparen.

Weiter

Informationen zur Verbesserung der Leistung eines Spiels finden Sie unter Eingriffe im Spielmodus, wenn keine Spielupdates zur Verfügung gestellt werden können.