Miglioramento delle prestazioni per i giochi

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:

game-mode

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:

loading-boost

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.