API Game Mode

L'API Game Mode ti consente di ottimizzare le prestazioni del gioco o maggiore durata della batteria quando l'utente seleziona la modalità di gioco corrispondente.

In alternativa, puoi inviare richieste di Interventi relativi alla modalità di gioco da migliorare le prestazioni dei giochi che non vengono più aggiornati dagli sviluppatori.

L'API Game Mode e gli interventi sono disponibili su:

Ogni gioco può implementare il comportamento dell'API Game Mode, proporre la modalità di gioco le impostazioni degli interventi agli OEM; disattivare gli interventi relativi alla modalità di gioco.

Configura

Per utilizzare l'API Game Mode nel tuo gioco, segui questi passaggi:

  1. Scarica e installa SDK per Android 13.

  2. Nel file AndroidManifest.xml, Dichiara la tua app come gioco impostando il parametro appCategory nel Elemento <application>:

android:appCategory="game"
  1. Esegui una query sulla modalità di gioco corrente aggiungendo questo alla tua attività principale:

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
}
Modalità di gioco supportata Descrizione
NON SUPPORTATI Il gioco non dichiara il supporto per l'API Game Mode e non supporta gli interventi per la modalità di gioco.
STANDARD L'utente non ha selezionato una modalità di gioco o l'utente ha selezionato la modalità standard.
RENDIMENTO Offre le frequenze fotogrammi con latenza più bassa in cambio di una durata della batteria e un livello di affidabilità ridotti.
BATTERIA Offre la maggiore durata possibile della batteria in cambio di una fedeltà ridotta o frequenze fotogrammi.
  1. Aggiungi il codice per eseguire una query sullo stato della modalità di gioco nel Funzione onResume:

    Esempio con impostazione utente per la modalità Batteria

di Gemini Advanced.

Best practice

Se il tuo gioco supporta già fedeltà multipla e frequenza fotogrammi target, devi identificare le impostazioni appropriate per il rendimento modalità di risparmio energetico:

  • Per ottenere in modo coerente le frequenze fotogrammi massime consentite per i dispositivi: valuta riduzioni della fedeltà per ottenere frequenze fotogrammi più elevate.

  • Per aumentare la durata della batteria, valuta la possibilità di scegliere una frequenza di aggiornamento del display più bassa (ad es. 30 Hz o 60 Hz) e usa il pacing di frame per scegliere come target a una tariffa ridotta.

Per giochi ad alta fedeltà come sparatutto in prima persona, multiplayer online arene di combattimento (MOBA) e giochi di ruolo (RPG), dovresti concentrarti su raggiungere frequenze fotogrammi elevate per massimizzare l'immersività dell'utente.

Per i casual game e ad alta fedeltà, devi supportare la modalità di risparmio energetico per allungare il tempo di riproduzione riducendo le frequenze di picco dei fotogrammi.

Dichiara il supporto delle modalità di gioco

Dichiarare il supporto delle modalità di gioco ed eseguire l'override di qualsiasi intervento relativo alla modalità di gioco. Gli OEM devono prima aggiungere la configurazione della modalità di gioco al <application> nel tuo AndroidManifest.xml file:

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

Quindi crea un file game_mode_config.xml nella directory res/xml/ del tuo progetto con i seguenti contenuti:

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

Cambia modalità di gioco

Per passare da una modalità di gioco all'altra, puoi utilizzare il Pannello di gioco (disponibile su Pixel) o applicazioni simili fornite dagli OEM. In alternativa, puoi usare il comando shell Modalità di gioco durante lo sviluppo.

Se utilizzi il Pannello di gioco e l'icona di ottimizzazione non viene visualizzata quando viene lanciato il gioco, potresti dover caricare l'app su Google Play Console e installarlo tramite il Play Store. Per informazioni sui test delle app nel Play Store, vedi Condividere internamente app bundle e APK.

Attività del Pannello di gioco! Figura 1. Pannello di gioco mostrato con una sovrapposizione al gioco in esecuzione su Pixel dispositivo.

Nella Figura 1, la modalità di gioco del gioco in esecuzione può essere modificata dalla scheda Ottimizzazione widget. Come mostrato nel widget, il gioco è attualmente in esecuzione PERFORMANCE .

Durante lo sviluppo, se utilizzi un dispositivo senza Pannello di gioco e produttore non offre un modo per impostare la modalità di gioco per ogni app, puoi modifica lo stato della modalità di gioco tramite adb:

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

Applicazione di esempio

Esempio di API Game Mode evidenzia come è possibile ottimizzare i FPS e i limiti di risoluzione del rendering per risparmiare circa il 25% di energia nelle app.

Avanti

Leggi gli interventi relativi alle modalità di gioco. per migliorare le prestazioni di un gioco quando non è possibile fornire aggiornamenti del gioco.