Gli interventi della modalità Gioco sono ottimizzazioni specifiche per i giochi impostate dai produttori di apparecchiature originali (OEM) per migliorare le prestazioni dei giochi che non vengono più aggiornati dagli sviluppatori. Ad esempio:
- Utilizzo del ridimensionamento del backbuffer di WindowManager.
- Utilizzo di ANGLE anziché dei driver GLES nativi.
Puoi fare in modo che il tuo gioco supporti e gestisca l'API Game Mode, in modo che sostituisca gli interventi della modalità Gioco forniti dall'OEM.
L'API e gli interventi della modalità di gioco sono disponibili su:
- Dispositivi con Android 12 selezionati
- Dispositivi con Android 13 o versioni successive
Ogni partita può:
- Implementare il comportamento dell'API Game Mode,
- Proporre agli OEM le impostazioni degli interventi della modalità di gioco oppure
- Disattivare esplicitamente gli interventi della modalità di gioco.
Background
Questa sezione descrive cosa fanno gli interventi della modalità Gioco e come ottimizzare il tuo gioco per ogni modalità.
Ridimensionamento del backbuffer di WindowManager
L'intervento di ridimensionamento del backbuffer di WindowManager può ridurre il carico della GPU di un dispositivo. Può anche ridurre il consumo della batteria quando un gioco viene eseguito a una frequenza frame target.
L'attivazione del ridimensionamento può comportare una riduzione fino al 30% della GPU e del 10% del consumo di energia complessivo del sistema. I risultati possono variare in base al dispositivo utilizzato, alle condizioni ambientali e ad altri fattori, come l'elaborazione simultanea.
Un gioco non basato su tempo limitato vincolato dalla GPU è probabile che presenti frequenze frame più elevate durante i carichi ridotti della GPU.
Consigliamo vivamente di impostare un ritmo adeguato per tutti i giochi, perché le frequenze frame non uniformi influiscono notevolmente sulla percezione delle prestazioni da parte degli utenti.
Limitazione FPS
La limitazione FPS di Android è un intervento della modalità Gioco che consente ai giochi di funzionare a una frequenza fotogrammi più stabile per ridurre il consumo della batteria. L'intervento è disponibile su Android 13 o versioni successive. Per ulteriori informazioni, consulta la panoramica della limitazione FPS.
Valutare gli interventi della modalità di gioco
In questa sezione viene utilizzato il comando adb.
Configura le modalità
Devi disattivare le modalità di gioco nel file di configurazione della modalità di gioco dell'app prima di testare gli interventi relativi alla modalità di gioco. In caso contrario, la piattaforma li aggirerà e rispetterà solo le ottimizzazioni in-game.
<?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"
/>
(Facoltativo) Esegui il backup della configurazione del dispositivo esistente
Per Pixel o altri dispositivi, potrebbe essere presente una configurazione di intervento per i giochi preesistente nella configurazione del dispositivo. Puoi eseguire query sulla configurazione utilizzando il comando:
adb shell device_config get game_overlay <PACKAGE_NAME>
Se la query restituisce null
, ignora la configurazione preesistente. In caso contrario, salvalo
e ripristinalo dopo la valutazione.
Valutare gli interventi
Per valutare l'intervento di ridimensionamento del backbuffer di WindowManager da solo, utilizza il seguente comando per impostare valori di ridimensionamento del buffer di WindowManager diversi nelle modalità di gioco.
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
Nell'esempio precedente, mode=2
è "Prestazioni" e mode=3
è "Risparmio batteria". Il valore downscaleFactor
è specificato come percentuale applicata all'impostazione di ridimensionamento (ad esempio, 0,7 corrisponde al 70% e 0,8 all'80%). Un ridimensionamento del 90% (0,9) è quasi trascurabile, mentre il 50% (0,5) è significativo.
Avviso: le dimensioni dei processi secondari potrebbero non essere ridimensionate correttamente in Android 12. In particolare, assicurati che le notifiche popup e i popup vengano visualizzati correttamente. Ti consigliamo di limitare l'impostazione di ridimensionamento ad almeno il 70%.
Dopo aver configurato i nuovi valori di ridimensionamento, passa da una modalità di gioco all'altra per vedere in che modo il tuo gioco è interessato dall'intervento di ridimensionamento del backbuffer di WindowManager:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Assicurati di riavviare il gioco dopo ogni selezione della modalità di gioco. L'intervento di ridimensionamento richiede il riavvio dell'app.
Disattivare gli interventi
Puoi controllare se un intervento viene applicato al tuo gioco disattivandolo. Ogni intervento ha la propria impostazione di disattivazione.
- Lo stesso file XML di configurazione utilizzato per controllare l'attivazione e la disattivazione delle modalità di gioco viene utilizzato anche per le impostazioni di intervento:
<?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"
/>
- Ricostruisci e invia nuovamente il gioco per disattivare la funzionalità.
Per impostazione predefinita, verranno utilizzati gli interventi impostati dai produttori di apparecchiature originali (OEM), a meno che non disattivi esplicitamente il loro utilizzo nel tuo gioco.
Risorse
Per ulteriori informazioni su come misurare e ottimizzare il rendimento dei giochi:
Profilatori di sistema: analizzano l'utilizzo della CPU e le chiamate di grafica.
Android GPU Inspector: profila la grafica su Android.
Android Frame Pacing Library: aiuta i giochi OpenGL e Vulkan a ottenere un rendering fluido e a correggere il pacing dei frame.
Android Performance Tuner: misura e optimizza la frequenza frame e la grafica su larga scala sui dispositivi Android.
Power Profiler: scopri dove la tua app utilizza più energia del necessario.