Les interventions en mode Jeu sont Optimisations propres aux jeux vidéo définies par les fabricants d'équipement d'origine (OEM) pour améliorer les performances des jeux qui ne sont plus mis à jour par développeurs. Exemple :
- Utilisation du redimensionnement du tampon d'arrière-plan WindowManager
- Utilisation d'ANGLE au lieu des pilotes GLES natifs
Votre jeu peut prendre en charge et gérer API Game Mode, pour qu'elle remplace Interventions en mode Jeu fournies par l'OEM.
L'API et les interventions Game Mode sont disponibles sur :
- Certains appareils Android 12
- Les appareils équipés d'Android 13 ou version ultérieure
Chaque jeu peut:
- Implémentez le comportement de l'API Game Mode
- proposer des paramètres d'interventions en mode Jeu aux OEM ; ou
- Désactiver explicitement les interventions en mode Jeu
Arrière-plan
Cette section décrit le fonctionnement des interventions Game Mode et explique comment les optimiser votre jeu pour chaque mode.
Redimensionnement du tampon d'arrière-plan WindowManager
L'intervention de redimensionnement du tampon d'arrière-plan WindowManager peut réduire la charge GPU d'un appareil. Elle permet également de réduire la consommation de la batterie lorsqu'un jeu respecte le nombre de frames par seconde cible.
L'activation du redimensionnement peut entraîner une réduction allant jusqu'à 30% de l'utilisation du GPU et 10% du volume global la consommation d'énergie du système. Les résultats peuvent varier en fonction de l'appareil utilisé, des conditions environnementales et d'autres facteurs, tels que le traitement simultané.
Un jeu sans nombre de frames par seconde défini et reposant sur le GPU est susceptible d'afficher une fréquence de frames plus élevée lors des charges de GPU réduites.
Nous recommandons vivement que tous les jeux soient bien rythmé, car les fréquences d'images inégales sont considérablement sur la façon dont les utilisateurs perçoivent les performances.
Limitation du FPS
La limitation du FPS Android est une intervention du mode Jeu qui aide les jeux à s'exécuter une fréquence d'images plus stable pour réduire la consommation de la batterie. L'intervention est disponible sur Android 13 ou version ultérieure. Pour plus en savoir plus, consultez la présentation de la limitation FPS.
Évaluer les interventions en mode Jeu
Cette section utilise la commande adb.
Configurer les modes
Vous devez désactiver Game Mode Fichier de configuration Game Mode avant de tester les interventions en mode Jeu. Sinon, la plate-forme contournera et de ne respecter que les optimisations dans le jeu.
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="false"
/>
(Facultatif) Sauvegarder la configuration existante de l'appareil
Pour les Pixel ou d'autres appareils, une intervention peut être proposée dans la configuration de votre appareil. Vous pouvez interroger la configuration à l'aide de la commande suivante:
adb shell device_config get game_overlay <PACKAGE_NAME>
Si la requête renvoie null
, ignorez la configuration préexistante. Sinon, enregistrez-le.
et réinitialisés après l'évaluation.
Évaluer les interventions
Pour évaluer seule l'intervention de redimensionnement du tampon d'arrière-plan WindowManager, utilisez la pour définir différentes valeurs de redimensionnement de la mémoire tampon WindowManager différents modes de jeu.
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
Dans l'exemple ci-dessus, mode=2
correspond à "Performances" et mode=3
est "Économiseur de batterie". La valeur downscaleFactor
est spécifiée sous forme de pourcentage
s'applique au paramètre de redimensionnement (par exemple, 0,7 correspond à 70% et 0,8 à 80%). A 90%
(0,9) est presque négligeable, tandis qu'un redimensionnement de 50% (0,5) est significatif.
Avertissement:Il est possible que les processus enfants ne soient pas redimensionnés correctement dans Android 12. Dans en particulier, assurez-vous que les toasts et les pop-ups s'affichent correctement. Mer nous vous recommandons de limiter le paramètre de redimensionnement à 70 % minimum.
Une fois les nouvelles valeurs de redimensionnement configurées, passez d'un mode de jeu à un autre pour voir votre jeu est affecté par l'intervention de redimensionnement du tampon d'arrière-plan WindowManager:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Veillez à redémarrer le jeu après chaque sélection de mode de jeu. La l'intervention de réduction de la capacité nécessite le redémarrage de l'application.
Désactiver les interventions
Vous pouvez contrôler si une intervention est appliquée à votre jeu en vous désactivant. Chaque intervention a son propre paramètre de désactivation.
- Le même fichier XML de configuration que celui utilisé pour contrôler l'activation et la désactivation de Game Les modes sont également utilisés pour les paramètres d'intervention:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"
/>
- Recompilez votre jeu et renvoyez-le pour le désactiver l'intervention.
Par défaut, les interventions définies par les fabricants d'équipement d'origine (OEM) seront utilisés, sauf si vous désactivez explicitement leur utilisation pour votre jeu.
Ressources
Pour en savoir plus sur la mesure et l'optimisation des performances des jeux, consultez les liens suivants :
Profileurs système : analysez l'utilisation du processeur et les appels graphiques.
Android GPU Inspector : profilez les graphiques sur Android.
Bibliothèque Android Frame Pacing : permet aux jeux OpenGL et Vulkan d'obtenir un rendu fluide et un rythme de frames par seconde adapté.
Android Performance Tuner : mesurez et optimisez la fréquence de frames et les graphismes sur des appareils Android à grande échelle.
Profileur d'énergie : déterminez quelles parties de votre application consomment plus d'énergie que nécessaire.