A partire da Android 14, una nuova modalità di alimentazione denominata GAME
nell'Android Dynamic Performance Framework (ADPF) consente di personalizzare
le prestazioni dello smartphone durante l'uso del gioco. GAME
indica a Power HAL che
un'app di gioco è in primo piano. Questa indicazione consente a Power HAL di adottare strategie di gestione dell'alimentazione durante l'esecuzione di un gioco, in modo da offrire all'utente 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 booster di caricamento. Questa indicazione consente all'HAL Power di fornire misure di miglioramento delle prestazioni che possono velocizzare il tempo di caricamento del gioco.
Questa pagina descrive come l'app di gioco trasferisca lo stato del gioco all'HAL Power, spiega come configurare l'HAL Power per trarne vantaggio nei tuoi dispositivi e come testare l'implementazione dell'HAL Power.
Rilevamento e notifica della modalità di alimentazione
Questa sezione descrive in che modo Power Manager gestisce le modalità GAME
e GAME_LOADING
.
Modalità di alimentazione GAME
La nuova modalità di risparmio energetico GAME
in Android 14 indica al servizio di gestione dell'alimentazione che l'utente sta giocando. Quando il Power HAL viene avvisato 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 Power per indicare la modalità di risparmio energetico GAME
:
Figura 1. Flusso di informazioni per indicare che è in corso una partita.
La modalità di alimentazione GAME
è sempre impostata per le app con appCategory
GAME
in AndroidManifest.xml
.
Modalità di alimentazione GAME_LOADING
La modalità di aumento della velocità di caricamento funziona rilevando quando un'app di gioco è in stato di caricamento e inviando una notifica all'HAL Power. 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 di GAME_LOADING
nel servizio Power Manager per notificare a Power HAL lo stato di primo livello del gioco. Una volta che l'HAL Power viene informato dello stato di caricamento del gioco, può regolare le impostazioni di prestazioni della piattaforma e la frequenza di clock della CPU, con un conseguente miglioramento dei tempi di caricamento.
Per indicare che un gioco è in fase di caricamento, l'app del gioco utilizza il Pannello di gioco per impostare un stato isLoading
in Gestore giochi. Il Game Manager passa questo stato al servizio Game Manager, che utilizza setPowerMode
con la nuova modalità di alimentazione di GAME_LOADING
per richiamare il servizio Power Manager. La modalità di risparmio energetico GAME_LOADING
indica all'HAL Power che il gioco è in stato di caricamento in modo che l'HAL Power possa fornire un boost di caricamento.
La figura seguente spiega il flusso di informazioni dall'app al Power HAL per indicare lo stato di caricamento:
Figura 2. Flusso di informazioni per indicare che un gioco è in stato di caricamento.
La dashboard del gioco consente agli utenti di attivare o disattivare la funzionalità di miglioramento del caricamento con l'impostazione Prestazioni. L'impostazione Rendimento è sempre disattivata per impostazione predefinita.
Personalizza Power HAL utilizzando GAME e GAME_LOADING
Per sfruttare le modalità GAME
e GAME_LOADING
, gli OEM devono
personalizzare la propria implementazione di Power HAL.
Poiché la gestione dell'alimentazione e l'aumento 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:
- Stabilizza la frequenza fotogrammi
- Aumentare la velocità di clock della CPU
- Ridurre temporaneamente il throttling della temperatura
- Assegna una priorità della CPU più alta all'app di gioco in primo piano
- Riduci il boost della CPU ottimizzato per le normali app non di gioco
- Ottimizza la strategia di distribuzione della potenza in base alla temperatura
Testare l'implementazione della modalità GIOCO
Per testare l'implementazione della modalità GAME
, utilizza i test che hanno come 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
invoca la modalità di caricamento del gioco sull'HAL Power in modalità prestazioni.