Amélioration des performances pour les jeux

À partir d'Android 14, un nouveau mode d'alimentation nommé GAME dans l'Android Dynamic Performance Framework (ADPF) permet de personnaliser les performances du téléphone pendant l'utilisation des jeux. GAME indique à Power HAL qu'une application de jeu est au premier plan. Cette indication permet à Power HAL d'adopter des stratégies de gestion de l'alimentation lorsqu'un jeu est en cours d'exécution, 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 appli de jeu est en cours de chargement afin que la couche d'abstraction matérielle de gestion de l'alimentation puisse fournir un boost de chargement. Cette indication permet à Power HAL de fournir des mesures d'amélioration des performances qui peuvent accélérer le temps de chargement du jeu.

Cette page explique comment l'application de jeu transmet l'état du jeu à Power HAL, comment configurer Power HAL pour en tirer parti dans vos appareils et comment tester votre implémentation Power HAL.

Détection et notification du mode d'alimentation

Cette section décrit comment le gestionnaire d'alimentation gère les modes GAME et GAME_LOADING.

Mode d'alimentation JEU

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

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

game-mode

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

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

Mode d'alimentation GAME_LOADING

Le mode d'amélioration du chargement fonctionne en détectant lorsqu'une application de jeu est en état de chargement et en informant 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 le HAL d'alimentation 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 améliore les temps de chargement.

Pour indiquer qu'un jeu est en cours de chargement, l'application de jeu utilise le tableau de bord Jeux 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 un boost de chargement.

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

loading-boost

Figure 2. Flux d'informations indiquant qu'un jeu est en cours de chargement.

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

Personnaliser Power HAL à l'aide de 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 tant qu'une implémentation de référence pour l'appareil Google Pixel n'est pas publiée.

Pour améliorer les performances en mode GAME et GAME_LOADING, les OEM peuvent choisir d'implémenter une combinaison des mesures suivantes :

  • Stabiliser la fréquence d'images
  • Augmenter la fréquence d'horloge du processeur
  • Réduire temporairement la limitation thermique
  • Attribuer une priorité de processeur plus élevée à l'application de jeu au premier plan
  • Réduire l'optimisation du processeur pour les applications régulières (non-jeux)
  • Optimiser la stratégie de répartition de l'énergie liée à la température

Tester l'implémentation du mode JEU

Pour tester l'implémentation du mode GAME, utilisez les 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 le Power HAL en mode Performances.