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:
- Seleziona dispositivi Android 12
- Dispositivi con Android 13 o versioni successive
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:
Scarica e installa SDK per Android 13.
Nel file
AndroidManifest.xml
, Dichiara la tua app come gioco impostando il parametroappCategory
nel Elemento<application>
:
android:appCategory="game"
- 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. |
Aggiungi il codice per eseguire una query sullo stato della modalità di gioco nel Funzione
onResume
:
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'immedesimazione 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.
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.