Miglioramento delle prestazioni per i giochi

A partire da Android 14, una nuova modalità di risparmio energetico denominata GAME nel framework ADPF (Android Dynamic Performance Framework) consente di personalizzare le prestazioni dello smartphone durante l'utilizzo dei giochi. GAME indica all'HAL Power 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 il 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 la HAL Power possa fornire un aumento del 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 come Gestione energia gestisce le modalità GAME e GAME_LOADING.

Modalità di alimentazione GAME

La nuova modalità di risparmio energetico GAME in Android 14 indica al Power Manager Service che l'utente sta giocando. Quando l'HAL Power viene informato della modalità GAME, può regolare la potenza 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 risparmio energetico GAME è sempre impostata per le app con un valore 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 Power. Android 13 introduce un nuovo stato di gioco chiamato isLoading nell'API rivolta agli sviluppatori. Questo stato di gioco utilizza la nuova modalità di alimentazione GAME_LOADING nel servizio Power Manager per notificare all'HAL di alimentazione lo stato di gioco di primo livello. 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. 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 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 all'HAL Power 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 dell'HAL Power. Poiché la gestione dell'alimentazione e l'aumento delle prestazioni sono specifici per l'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ù elevata all'app di gioco in primo piano
  • Ridurre l'aumento della CPU ottimizzato per le app normali non di giochi
  • 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 con 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 nell'HAL Power in modalità prestazioni.