A partir de Android 14, un nuevo modo de energía llamado GAME
en Android Dynamic Performance Framework (ADPF) permite personalizar el rendimiento del teléfono durante el uso del juego. GAME
indica al Power HAL que hay una aplicación de juego en primer plano. Esta indicación permite que Power HAL adopte estrategias de administración de energía cuando se está jugando un juego, para que el usuario experimente un rendimiento estable y mejorado.
Para mejorar el tiempo de carga de un juego, Android 13 introduce un nuevo modo de energía llamado GAME_LOADING
en ADPF. GAME_LOADING
indica si una aplicación de juego está en estado de carga para que Power HAL pueda proporcionar un impulso de carga. Esta indicación permite que Power HAL proporcione medidas para mejorar el rendimiento que pueden acelerar el tiempo de carga del juego.
Esta página describe cómo la aplicación del juego pasa el estado del juego a Power HAL, explica cómo configurar Power HAL para aprovecharlo en sus dispositivos y cómo probar su implementación de Power HAL.
Detección y notificación del modo de energía
Esta sección describe cómo Power Manager maneja los modos GAME
y GAME_LOADING
.
Modo de potencia JUEGO
El nuevo modo de energía GAME
en Android 14 indica al servicio Power Manager que el usuario está jugando. Cuando se notifica al Power HAL sobre el modo GAME
, puede ajustar la energía para mejorar el rendimiento, reducir la temperatura y extender la duración de la batería, mientras se juega.
La siguiente figura explica el flujo de información al Power HAL para indicar el modo de energía GAME
:
Figura 1. Flujo de información para indicar que se está jugando un juego.
El modo de energía GAME
siempre está configurado para aplicaciones con una appCategory
de GAME
en AndroidManifest.xml
.
GAME_LOADING modo de energía
El modo de aumento de carga funciona detectando cuando una aplicación de juego está en estado de carga y notificando al Power HAL. Android 13 introduce un nuevo estado del juego llamado isLoading
en la API orientada al desarrollador . Este estado del juego utiliza el nuevo modo de energía GAME_LOADING
en el servicio Power Manager para notificar al Power HAL sobre el estado del juego de nivel superior. Una vez que se notifica a Power HAL sobre el estado de carga del juego, puede ajustar la configuración de rendimiento de la plataforma y la velocidad del reloj de la CPU, lo que resulta en tiempos de carga mejorados.
Para indicar que un juego se está cargando, la aplicación del juego utiliza el Panel del juego para establecer un estado isLoading
en el Administrador del juego. Game Manager pasa este estado al Game Manager Service, que utiliza setPowerMode
con el nuevo modo de energía GAME_LOADING
para invocar el Power Manager Service. El modo de energía GAME_LOADING
le indica al Power HAL que el juego está en un estado de carga para que el Power HAL pueda proporcionar un impulso de carga.
La siguiente figura explica el flujo de información desde la aplicación al Power HAL para indicar el estado de carga:
Figura 2. Flujo de información para indicar que un juego está en estado de carga.
El panel del juego permite a los usuarios activar o desactivar la función de aumento de carga con la Configuración de rendimiento. La configuración de rendimiento siempre está desactivada de forma predeterminada.
Personaliza Power HAL usando GAME y GAME_LOADING
Para aprovechar los modos GAME
y GAME_LOADING
, los OEM deben personalizar su implementación de Power HAL . Como la administración de energía y el aumento del rendimiento son específicos del hardware, no hay implementaciones de referencia para los modos GAME
o GAME_LOADING
disponibles hasta que se publique una implementación de referencia para el dispositivo Google Pixel.
Para mejorar el rendimiento en modo GAME
y GAME_LOADING
, los OEM pueden optar por implementar una combinación de las siguientes medidas:
- Estabilizar la velocidad de fotogramas
- Aumentar la velocidad del reloj de la CPU
- Reducir temporalmente el estrangulamiento de temperatura
- Asigne una prioridad de CPU más alta a la aplicación del juego en primer plano
- Reduzca el aumento de la CPU optimizado para aplicaciones normales que no son juegos
- Optimizar la estrategia de distribución de energía relacionada con la térmica.
Probar la implementación del modo JUEGO
Para probar la implementación del modo GAME
, use pruebas con el prefijo testGamePowerMode_
en GameManagerServiceTests.java
.
Probar la implementación de GAME_LOADING
Para probar la implementación del modo GAME_LOADING
, use android.gamemanager.cts.GameManagerTest#testSetGameContext
. Esta prueba verifica si GameManager::setGameContext()
con un contexto isLoading
invoca el modo de carga del juego en Power HAL en modo de rendimiento.