À partir d'Android 14, un nouveau mode d'alimentation nommé GAME
dans le Framework de performances dynamiques Android (ADPF) permet de personnaliser les performances du téléphone pendant l'utilisation d'un jeu. GAME
indique au HAL Power qu'une application de jeu est au premier plan. Cette indication permet au HAL d'alimentation d'adopter des stratégies de gestion de l'alimentation lorsqu'un jeu est en cours de lecture, 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 HAL d'alimentation puisse accélérer le chargement. Cette indication permet à la HAL d'alimentation de fournir des mesures d'amélioration des performances susceptibles d'accélérer le temps de chargement du jeu.
Cette page explique comment l'application de jeu transmet l'état du jeu au HAL Power, comment configurer le HAL Power pour en profiter sur vos appareils, ainsi que comment tester votre implémentation du HAL Power.
Détection et notification du mode d'alimentation
Cette section explique comment le Gestionnaire d'alimentation gère les modes GAME
et GAME_LOADING
.
Mode GAME Power
Le nouveau mode d'alimentation GAME
d'Android 14 indique au service Gestionnaire d'alimentation que l'utilisateur joue à un jeu. Lorsque l'HAL d'alimentation reçoit une notification concernant le mode GAME
, il peut ajuster l'alimentation pour améliorer les performances, baisser la température et prolonger l'autonomie de la batterie pendant le jeu.
La figure suivante explique le flux d'informations envoyé au système HAL d'alimentation pour indiquer le mode d'alimentation GAME
:
Figure 1 : Flux d'informations indiquant qu'un jeu est en cours.
Le mode d'alimentation GAME
est toujours défini pour les applications dont l'appCategory
est GAME
dans AndroidManifest.xml
.
Mode d'alimentation GAME_LOADING
Le mode d'accélération du chargement fonctionne en détectant quand une application de jeu est en état de chargement et en envoyant une notification au HAL d'alimentation. 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 Gestionnaire d'alimentation pour informer le HAL d'alimentation de l'état de jeu de premier niveau. Une fois que le HAL Power a été 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 des 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 HAL d'alimentation que le jeu est en cours de chargement afin que le HAL d'alimentation puisse fournir un boost de chargement.
La figure suivante explique le flux d'informations de l'application vers le HAL Power pour indiquer l'état de chargement:
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'accélération du chargement avec le paramètre "Performances". Le paramètre de performances est toujours désactivé par défaut.
Personnaliser Power HAL avec GAME et GAME_LOADING
Pour profiter des modes GAME
et GAME_LOADING
, les OEM doivent personnaliser leur implémentation du HAL Power.
La gestion de l'alimentation et l'amélioration des performances étant propres 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 disponible.
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 vitesse d'horloge du processeur
- Réduire temporairement la limitation de température
- Attribuer une priorité de processeur plus élevée à l'application de jeu au premier plan
- Réduire l'optimisation du processeur pour les applications standards, autres que les jeux
- Optimiser la stratégie de distribution de l'alimentation liée à la température
Tester l'implémentation du mode Jeu
Pour tester l'implémentation du mode GAME
, utilisez des tests précédés de 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 HAL Power en mode performances.