A partire da Android 14, una nuova modalità di risparmio energetico denominata GAME
in Android Dynamic Performance Framework (ADPF) consente di personalizzare
le prestazioni dello smartphone durante l'utilizzo dei giochi. GAME
indica a Power HAL che un'app di gioco è in primo piano. Questa indicazione consente all'HAL di gestione dell'alimentazione di
adottare strategie di gestione dell'alimentazione durante la riproduzione di un gioco, in modo che l'utente
possa usufruire di prestazioni stabili e migliorate.
Per migliorare il tempo di caricamento di un gioco, Android
13 introduce una nuova modalità di risparmio energetico denominata GAME_LOADING
in ADPF. GAME_LOADING
indica se un'app di gioco è in stato di caricamento, in modo che
Power HAL possa fornire un aumento del caricamento. Questa indicazione consente all'HAL di alimentazione
di fornire misure di miglioramento delle prestazioni che possono accelerare il caricamento del gioco.
Questa pagina descrive in che modo l'app di gioco trasferisce lo stato del gioco a Power HAL, spiega come configurare Power HAL per sfruttarlo nei tuoi dispositivi e come testare l'implementazione di Power HAL.
Rilevamento della modalità di risparmio energetico e notifica
Questa sezione descrive come Power Manager gestisce le modalità GAME
e GAME_LOADING
.
Modalità di alimentazione GIOCO
La nuova modalità di risparmio energetico GAME
in Android 14 indica al
servizio di gestione dell'alimentazione
che l'utente sta giocando. Quando Power HAL riceve una notifica della modalità GAME
, può regolare l'alimentazione per migliorare le prestazioni, abbassare la temperatura e prolungare la durata della batteria durante il gioco.
La figura seguente spiega il flusso di informazioni all'HAL di alimentazione per
indicare la modalità di alimentazione GAME
:
Figura 1. Flusso di informazioni per indicare che è in corso una partita.
La modalità di risparmio energetico GAME
è sempre impostata per le app con un appCategory
di GAME
in AndroidManifest.xml
.
Modalità di alimentazione GAME_LOADING
La modalità di potenziamento del caricamento funziona rilevando quando un'app di gioco è in stato di caricamento e inviando una notifica all'HAL di alimentazione. Android 13
introduce un nuovo stato di gioco chiamato isLoading
nell'API rivolta agli sviluppatori.
Questo stato del gioco utilizza la nuova modalità di alimentazione GAME_LOADING
nel servizio Power Manager per comunicare a Power HAL lo stato del gioco di primo livello. Una volta che l'HAL di alimentazione viene informato dello stato di caricamento del gioco, può regolare le impostazioni delle prestazioni della piattaforma e la frequenza di clock della CPU, il che si traduce in tempi di caricamento più rapidi.
Per indicare che un gioco è in caricamento, l'app di gioco utilizza il Pannello di gioco per impostare
uno stato isLoading
in Game Manager. Game Manager passa questo stato al servizio Game Manager, che utilizza setPowerMode
con la nuova modalità di risparmio energetico GAME_LOADING
per richiamare il servizio Power Manager. La modalità di alimentazione GAME_LOADING
indica all'HAL di alimentazione che il gioco è in uno
stato di caricamento, in modo che l'HAL di alimentazione possa fornire un boost di caricamento.
La figura seguente illustra il flusso di informazioni dall'app a Power HAL per indicare lo stato di caricamento:
Figura 2. Flusso di informazioni per indicare che un gioco è in fase di caricamento.
La dashboard di gioco consente agli utenti di attivare o disattivare la funzionalità di aumento del caricamento con l'impostazione delle prestazioni. L'impostazione delle prestazioni è sempre disattivata per impostazione predefinita.
Personalizzare Power HAL utilizzando GAME e GAME_LOADING
Per sfruttare le modalità GAME
e GAME_LOADING
, gli OEM devono
personalizzare l'implementazione dell'HAL di alimentazione.
Poiché la gestione dell'alimentazione e il miglioramento delle prestazioni sono specifici dell'hardware, non vengono rese disponibili implementazioni di riferimento per le modalità GAME
o GAME_LOADING
finché non viene rilasciata un'implementazione di riferimento per il dispositivo Google Pixel.
Per migliorare le prestazioni in modalità GAME
e GAME_LOADING
, gli OEM possono scegliere di implementare una combinazione delle seguenti misure:
- Stabilizzare il frame rate
- Aumentare la velocità di clock della CPU
- Ridurre temporaneamente la limitazione della temperatura
- Assegnare una priorità della CPU più alta all'app di gioco in primo piano
- Riduzione del boost della CPU ottimizzato per le app regolari non di giochi
- Ottimizzare la strategia di distribuzione dell'energia correlata alla temperatura
Testare l'implementazione della modalità GAME
Per testare l'implementazione della modalità GAME
, utilizza i test con il prefisso
testGamePowerMode_
in GameManagerServiceTests.java
.
Testare l'implementazione di GAME_LOADING
Per testare l'implementazione della modalità GAME_LOADING
, utilizza android.gamemanager.cts.GameManagerTest#testSetGameContext
.
Questo test verifica se GameManager::setGameContext()
con un contesto isLoading
richiama la modalità di caricamento del gioco sull'HAL di alimentazione in modalità prestazioni.