L'API Modalità di gioco ti consente di ottimizzare il gioco per ottenere le migliori prestazioni o la massima durata della batteria quando l'utente seleziona la modalità di gioco corrispondente.
In alternativa, puoi inviare richieste di interventi della modalità di gioco per migliorare le prestazioni dei giochi che non vengono più aggiornati dagli sviluppatori.
L'API e gli interventi della modalità di gioco sono disponibili su:
- Dispositivi Android 12 selezionati
- Dispositivi con Android 13 o versioni successive
Configurazione
Per utilizzare l'API Modalità di gioco nel tuo gioco:
Scarica e installa l' SDK Android 13.
Nel file
AndroidManifest.xml, dichiara la tua app come gioco impostando l'attributoappCategorynell'elemento<application>:
android:appCategory="game"
- Esegui una query sulla modalità di gioco corrente aggiungendo quanto segue all'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 SUPPORTATA | Il gioco non dichiara il supporto per l'API Modalità di gioco e non supporta gli interventi della modalità di gioco. |
| STANDARD | L'utente non ha selezionato una modalità di gioco o ha selezionato la modalità standard. |
| RENDIMENTO | Fornisce le frequenze fotogrammi con la latenza più bassa in cambio di una durata della batteria e una fedeltà ridotte. |
| BATTERIA | Fornisce la massima durata possibile della batteria in cambio di una fedeltà o frequenza fotogrammi ridotte. |
Aggiungi il codice per eseguire una query sullo stato della modalità di gioco nella
onResumefunzione:
Best practice
Se il tuo gioco supporta già più target di fedeltà e frequenza fotogrammi, devi identificare le impostazioni appropriate per le modalità di rendimento e risparmio energetico:
Per ottenere costantemente le frequenze fotogrammi massime del dispositivo, valuta la possibilità di ridurre leggermente la fedeltà per ottenere frequenze fotogrammi più elevate.
Per migliorare la durata della batteria, valuta la possibilità di scegliere una frequenza di aggiornamento dello schermo inferiore (ad es. 30 Hz o 60 Hz) e utilizza il frame pacing per indirizzare la frequenza ridotta.
Per i giochi ad alta fedeltà come gli sparatutto in prima persona, le arene di battaglia online multiplayer (MOBA) e i giochi di ruolo (RPG), devi concentrarti sul raggiungimento di frequenze fotogrammi elevate e costanti per massimizzare l'immersione dell'utente.
Sia per i giochi ad alta fedeltà sia per i giochi casual, devi supportare la modalità Risparmio energetico per prolungare il tempo di gioco riducendo le frequenze fotogrammi di picco.
Dichiarare il supporto per le modalità di gioco
Per dichiarare il supporto per le modalità di gioco ed eseguire l'override di eventuali interventi della modalità di gioco da parte di
OEM, aggiungi prima la configurazione della modalità di gioco all'
<application> elemento nel tuo
AndroidManifest.xml file:
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
Poi crea un file game_mode_config.xml nella directory res/xml/ del 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"
/>
Cambiare modalità di gioco
Per passare da una modalità di gioco all'altra, puoi utilizzare il Pannello di gioco (disponibile sui dispositivi Pixel) o applicazioni simili fornite dagli OEM. In alternativa, puoi utilizzare il comando shell della modalità di gioco durante lo sviluppo.
Se utilizzi il Pannello di gioco e l'icona di ottimizzazione non viene visualizzata all'avvio del gioco, potrebbe essere necessario caricare l'app su Google Play Console e installarla tramite il Play Store. Per informazioni sui test delle app nel Play Store, consulta Condividere internamente app bundle e APK.
Figura 1. Il Pannello di gioco mostrato in overlay sul gioco in esecuzione su un dispositivo Pixel.
Nella figura 1, la modalità di gioco del gioco in esecuzione può essere modificata dal widget Ottimizzazione. Come mostrato nel widget, il gioco è attualmente in esecuzione in modalità
PERFORMANCE.
Durante lo sviluppo, se utilizzi un dispositivo senza il Pannello di gioco e il produttore non fornisce alcun modo per impostare la modalità di gioco per ogni app, puoi modificare lo stato della modalità di gioco tramite adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>Prova l'applicazione
L'esempio dell'API Modalità di gioco mostra come ottimizzare i limiti di FPS e risoluzione di rendering per risparmiare circa il 25% di energia nelle tue app.
Avanti
Leggi Interventi della modalità di gioco per migliorare le prestazioni di un gioco quando non è possibile fornire aggiornamenti del gioco.