Aumento 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'utilizzo dei giochi. GAME indica al Power HAL che un'app di gioco è in primo piano. Questa indicazione consente al Power HAL 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 alimentazione denominata GAME_LOADING in ADPF. GAME_LOADING indica se un'app di gioco è in stato di caricamento, in modo che il Power HAL possa fornire un aumento del caricamento. Questa indicazione consente al Power HAL di fornire misure di miglioramento delle prestazioni che possono velocizzare il tempo di caricamento del gioco.

Questa pagina descrive come l'app di gioco passa lo stato del gioco al Power HAL, spiega come configurare il Power HAL per sfruttarlo sui tuoi dispositivi e come testare l'implementazione del Power HAL.

Rilevamento e notifica della modalità di alimentazione

Questa sezione descrive come Power Manager gestisce le modalità GAME e GAME_LOADING.

Modalità di alimentazione GAME

La nuova modalità di alimentazione GAME in Android 14 indica a il servizio Power Manager che l'utente sta giocando. Quando il Power HAL riceve una notifica della modalità GAME, può regolare l'alimentazione per migliorare le prestazioni, ridurre la temperatura ed estendere la durata della batteria durante la riproduzione del gioco.

La figura seguente illustra il flusso di informazioni al Power HAL per indicare la modalità di alimentazione GAME:

game-mode

Figura 1. Flusso di informazioni per indicare che è in corso la riproduzione di un gioco.

La modalità di alimentazione GAME è sempre impostata per le app con un appCategory di GAME in AndroidManifest.xml.

Modalità di alimentazione GAME_LOADING

La modalità di aumento del caricamento funziona rilevando quando un'app di gioco è in stato di caricamento e inviando una notifica al Power HAL. Android 13 introduce un nuovo stato di gioco denominato isLoading nell'API rivolta agli sviluppatori. Questo stato di gioco utilizza la nuova GAME_LOADING modalità di alimentazione nel servizio Power Manager per inviare una notifica al Power HAL sullo stato di gioco di primo livello. Una volta che il Power HAL riceve una notifica dello stato di caricamento del gioco, può regolare le impostazioni delle prestazioni della piattaforma e la velocità di clock della CPU, con conseguente miglioramento dei tempi di caricamento.

Per indicare che un gioco è in fase di caricamento, l'app di gioco utilizza il Pannello di gioco per impostare uno isLoading stato in Game Manager. Game Manager passa questo stato al servizio Game Manager, che utilizza setPowerMode con la nuova GAME_LOADING modalità di alimentazione per richiamare il servizio Power Manager. La modalità di alimentazione GAME_LOADING indica al Power HAL che il gioco è in stato di caricamento, in modo che il Power HAL possa fornire un aumento del caricamento.

La figura seguente illustra 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.

Il Pannello 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 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 fino al rilascio di 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 la frequenza fotogrammi
  • Aumentare la velocità di clock della CPU
  • Ridurre temporaneamente la limitazione della temperatura
  • Assegnare una priorità della CPU più elevata all'app di gioco in primo piano
  • Ridurre l'aumento della CPU ottimizzato per le app normali non di gioco
  • Ottimizzare la strategia di distribuzione dell'alimentazione relativa 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 sul Power HAL in modalità prestazioni.