Aumento de rendimiento para juegos

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 una aplicación de juego está 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 GAME

El nuevo modo de energía GAME en Android 14 indica al servicio Power Manager que el usuario está jugando. Una vez que 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 :

game-mode

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:

loading-boost

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.