Aumento delle prestazioni per i giochi

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:

game-mode

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:

loading-boost

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.