A partir de Android 14, un nuevo modo de consumo llamado GAME
en el framework de rendimiento dinámico de Android (ADPF) permite la personalización del rendimiento del teléfono durante el uso de un juego. GAME
le indica a la HAL de energía que una app de juego está en primer plano. Esta indicación permite que el HAL de Power adopte estrategias de administración de energía cuando se está jugando un juego, de modo 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 encendido llamado GAME_LOADING
en ADPF. GAME_LOADING
indica si una app de juego está en estado de carga para que la HAL de energía pueda proporcionar una mejora de carga. Esta indicación permite que la HAL de energía proporcione medidas de mejora del rendimiento que pueden acelerar el tiempo de carga del juego.
En esta página, se describe cómo la app de juego pasa el estado del juego al HAL de Power, se explica cómo configurar el HAL de Power para aprovecharlo en tus dispositivos y se indica cómo probar la implementación del HAL de Power.
Detección y notificación del modo de energía
En esta sección, se describe cómo el Administrador de energía controla los modos GAME
y GAME_LOADING
.
Modo de alimentación GAME
El nuevo modo de consumo GAME
en Android 14 le indica al servicio de Power Manager que el usuario está jugando. Cuando se notifica al HAL de energía sobre el modo GAME
, este puede ajustar la energía para mejorar el rendimiento, reducir la temperatura y extender la duración de la batería mientras se juega.
En la siguiente figura, se explica el flujo de información hacia el HAL de Power 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 se establece para las apps con un appCategory
de GAME
en AndroidManifest.xml
.
Modo de energía GAME_LOADING
El modo de mejora de carga funciona detectando cuándo una app de juego está en estado de carga y notificando a la HAL de energía. Android 13 introduce un nuevo estado de juego llamado isLoading
en la API orientada a desarrolladores.
Este estado del juego usa el nuevo modo de encendido GAME_LOADING
en el servicio de Power Manager para notificar a la HAL de energía sobre el estado del juego de nivel superior. Una vez que se notifica al HAL de Power sobre el estado de carga del juego, este puede ajustar la configuración de rendimiento y la frecuencia de reloj de la CPU de la plataforma, lo que mejora los tiempos de carga.
Para indicar que se está cargando un juego, la app del juego usa el Panel de juego para establecer un estado isLoading
en el Administrador de juegos. Game Manager pasa este estado al servicio de Game Manager, que usa setPowerMode
con el nuevo modo de encendido GAME_LOADING
para invocar el servicio de Power Manager. El modo de energía GAME_LOADING
le indica a la HAL de energía que el juego está en estado de carga para que la HAL de energía pueda proporcionar una mejora de carga.
En la siguiente figura, se explica el flujo de información desde la app hasta el HAL de Power 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 el parámetro de configuración de rendimiento. El parámetro de configuración de rendimiento siempre está desactivado de forma predeterminada.
Personaliza el HAL de energía con GAME y GAME_LOADING
Para aprovechar los modos GAME
y GAME_LOADING
, los OEM deben personalizar su implementación del HAL de Power.
Dado que la administración de energía y la mejora del rendimiento son específicas del hardware, no se proporcionan implementaciones de referencia para los modos GAME
o GAME_LOADING
hasta que se lance una implementación de referencia para el dispositivo Google Pixel.
Para mejorar el rendimiento en los modos GAME
y GAME_LOADING
, los OEM pueden optar por implementar una combinación de las siguientes medidas:
- Estabiliza la velocidad de fotogramas
- Aumenta la velocidad de reloj de la CPU
- Cómo reducir temporalmente la regulación de temperatura
- Asigna una prioridad de CPU más alta a la app de juego en primer plano
- Reducción del aumento de CPU ajustada para apps normales que no son de juegos
- Optimiza la estrategia de distribución de energía relacionada con la temperatura
Prueba la implementación del modo GAME
Para probar la implementación del modo GAME
, usa pruebas con el prefijo testGamePowerMode_
en GameManagerServiceTests.java
.
Prueba la implementación de GAME_LOADING
Para probar la implementación del modo GAME_LOADING
, usa android.gamemanager.cts.GameManagerTest#testSetGameContext
.
Esta prueba verifica si GameManager::setGameContext()
con un contexto isLoading
invoca el modo de carga del juego en la HAL de energía en el modo de rendimiento.