Refuerzo de rendimiento para juegos

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 la HAL de energía 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 presenta 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 el 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 energía, se explica cómo configurar el HAL de energía para aprovecharlo en tus dispositivos y cómo probar tu implementación del HAL de energía.

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 encendido GAME en Android 14 le indica al servicio de Power Manager que el usuario está jugando un juego. Cuando se notifica a la HAL de energía del modo GAME, puede ajustar el consumo de energía para mejorar el rendimiento, reducir la temperatura y extender la duración de batería mientras se juega.

En la siguiente imagen, se explica el flujo de información a la HAL de energía para indicar el modo de encendido de GAME:

modo de juego

Figura 1: Flujo de información para indicar que se está jugando un partido.

El modo de energía GAME siempre se establece para las apps con un appCategory de GAME en AndroidManifest.xml.

Modo de alimentación GAME_LOADING

El modo de carga mejorada funciona detectando cuando una app de juego está en un estado de carga y notificando al HAL de energía. Android 13 introduce un nuevo estado de juego llamado isLoading en la API para desarrolladores. Este estado de juego usa el nuevo modo de energía GAME_LOADING en el servicio de Power Manager para notificar a la HAL de energía sobre el estado de juego de nivel superior. Una vez que la HAL de energía recibe una notificación del estado de carga del juego, puede ajustar la configuración de rendimiento de la plataforma y la frecuencia de reloj de la CPU, lo que genera tiempos de carga mejorados.

Para indicar que un juego se está cargando, la app usa el Panel de juego para establecer un estado isLoading en el Administrador de juegos. El Administrador de juegos pasa este estado al servicio de Administrador de juegos, que usa setPowerMode con el nuevo modo de encendido GAME_LOADING para invocar este servicio. El modo de energía GAME_LOADING le indica al HAL de energía que el juego está en un estado de carga para que pueda proporcionar una mejora de carga.

En la siguiente imagen, se explica el flujo de información de la app al HAL de Power para indicar el estado de carga:

loading-boost

Figura 2: Flujo de información para indicar que un juego está en un estado de carga.

El panel de 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 el sistema HAL de energía con GAME y GAME_LOADING

Para aprovechar los modos GAME y GAME_LOADING, los OEMs deben personalizar su implementación del HAL de energía. Como la administración de energía y el aumento del rendimiento son específicos del hardware, no se ponen a disposición implementaciones de referencia para los modos GAME ni GAME_LOADING hasta que se lanza una implementación de referencia para el dispositivo Google Pixel.

Para mejorar el rendimiento en un modo GAME y GAME_LOADING, los OEMs pueden 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 limitación de temperatura
  • Asigna una prioridad de CPU más alta a la app de juego en primer plano
  • Reduce el aumento de la CPU ajustado para apps normales que no son de juegos
  • Optimiza la estrategia de distribución de energía térmica

Prueba la implementación del modo de juego

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 el sistema HAL de energía en el modo de rendimiento.