Amélioration des performances pour les jeux

À partir d'Android 14, un nouveau mode d'alimentation nommé GAME dans Android Dynamic Performance Framework (ADPF) permet de personnaliser les performances du téléphone pendant l'utilisation du jeu. GAME indique au Power HAL qu'une application de jeu est au premier plan. Cette indication permet au Power HAL d'adopter des stratégies de gestion de l'énergie lorsqu'un jeu est en cours, afin que l'utilisateur bénéficie de performances stables et améliorées.

Pour améliorer le temps de chargement d'un jeu, Android 13 introduit un nouveau mode d'alimentation nommé GAME_LOADING dans ADPF. GAME_LOADING indique si une application de jeu est en état de chargement afin que le Power HAL puisse fournir une accélération du chargement. Cette indication permet au Power HAL de fournir des mesures d'amélioration des performances qui peuvent accélérer le temps de chargement du jeu.

Cette page décrit comment l'application de jeu transmet l'état du jeu à Power HAL, explique comment configurer Power HAL afin d'en profiter sur vos appareils, ainsi que comment tester votre implémentation de Power HAL.

Détection et notification du mode d'alimentation

Cette section décrit comment Power Manager gère les modes GAME et GAME_LOADING .

Mode puissance GAME

Le nouveau mode d'alimentation GAME dans Android 14 indique au service Power Manager que l'utilisateur joue à un jeu. Une fois que le Power HAL est informé du mode GAME , il peut ajuster la puissance pour améliorer les performances, abaisser la température et prolonger la durée de vie de la batterie pendant que le jeu est en cours.

La figure suivante explique le flux d'informations vers le Power HAL pour indiquer le mode d'alimentation GAME :

game-mode

Figure 1. Flux d'informations indiquant qu'un jeu est en cours.

Le mode d'alimentation GAME est toujours défini pour les applications avec une appCategory de GAME dans le AndroidManifest.xml .

Mode d'alimentation GAME_LOADING

Le mode boost de chargement fonctionne en détectant quand une application de jeu est en état de chargement et en notifiant le Power HAL. Android 13 introduit un nouvel état de jeu appelé isLoading dans l' API destinée aux développeurs . Cet état de jeu utilise le nouveau mode d'alimentation GAME_LOADING dans le service Power Manager pour informer Power HAL de l'état de jeu de niveau supérieur. Une fois que Power HAL est informé de l'état de chargement du jeu, il peut ajuster les paramètres de performances de la plate-forme et la fréquence d'horloge du processeur, ce qui entraîne une amélioration des temps de chargement.

Pour indiquer qu'un jeu est en cours de chargement, l'application de jeu utilise le tableau de bord du jeu pour définir un état isLoading dans le gestionnaire de jeux. Le Game Manager transmet cet état au service Game Manager, qui utilise setPowerMode avec le nouveau mode d'alimentation GAME_LOADING pour appeler le service Power Manager. Le mode d'alimentation GAME_LOADING indique au Power HAL que le jeu est en état de chargement afin que le Power HAL puisse fournir une augmentation de chargement.

La figure suivante explique le flux d'informations de l'application vers Power HAL pour indiquer l'état de chargement :

loading-boost

Figure 2. Flux d'informations pour indiquer qu'un jeu est en état de chargement.

Le tableau de bord du jeu permet aux utilisateurs d'activer ou de désactiver la fonction d'augmentation du chargement avec le paramètre de performances. Le paramètre de performances est toujours désactivé par défaut.

Personnalisez Power HAL à l'aide GAME et GAME_LOADING

Pour profiter des modes GAME et GAME_LOADING , les OEM doivent personnaliser leur implémentation de Power HAL . Étant donné que la gestion de l'alimentation et l'amélioration des performances sont spécifiques au matériel, aucune implémentation de référence pour les modes GAME ou GAME_LOADING n'est disponible jusqu'à ce qu'une implémentation de référence pour l'appareil Google Pixel soit publiée.

Pour améliorer les performances en mode GAME et GAME_LOADING , les OEM peuvent choisir de mettre en œuvre une combinaison des mesures suivantes :

  • Stabiliser la fréquence d'images
  • Augmenter la vitesse d'horloge du processeur
  • Réduire temporairement la limitation de température
  • Attribuez une priorité CPU plus élevée à l'application de jeu de premier plan
  • Réduisez l'augmentation du processeur pour les applications régulières non liées aux jeux.
  • Optimiser la stratégie de distribution d’énergie thermique

Tester l'implémentation du mode JEU

Pour tester l'implémentation du mode GAME , utilisez des tests préfixés par testGamePowerMode_ dans GameManagerServiceTests.java .

Tester l'implémentation de GAME_LOADING

Pour tester l'implémentation du mode GAME_LOADING , utilisez android.gamemanager.cts.GameManagerTest#testSetGameContext . Ce test vérifie si GameManager::setGameContext() avec un contexte isLoading appelle le mode de chargement du jeu sur Power HAL en mode performance.