L'API Game Mode vous permet d'optimiser les performances de votre jeu ou l'autonomie de la batterie, selon le mode de jeu choisi par l'utilisateur.
Vous pouvez également envoyer des demandes d'interventions Game Mode pour améliorer les performances des jeux qui ne sont plus mis à jour par les développeurs.
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émenter le comportement de l'API Game Mode, proposer des paramètres d'intervention Game Mode aux OEM ou désactiver les interventions Game Mode.
Configurer
Pour utiliser l'API Game Mode dans votre jeu, procédez comme suit :
Téléchargez et installez le SDK Android 13.
Dans le fichier
AndroidManifest.xml
, déclarez votre application en tant que jeu en définissant l'attributappCategory
dans l'élément<application>
:
android:appCategory="game"
- Interrogez le mode de jeu actuel en ajoutant ceci à votre activité principale :
Java
// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
// Get GameManager from SystemService
GameManager gameManager = Context.getSystemService(GameManager.class);
// Returns the selected GameMode
int gameMode = gameManager.getGameMode();
}
Kotlin
// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Get GameManager from SystemService
val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?
// Returns the selected GameMode
val gameMode = gameManager?.gameMode
}
Compatibilité Game Mode | Description |
---|---|
NON COMPATIBLE | Le jeu n'est compatible ni avec l'API Game Mode, ni avec les interventions Game Mode. |
STANDARD | L'utilisateur n'a sélectionné aucun mode de jeu ou a sélectionné le mode standard. |
PERFORMANCES | Fournit les fréquences de frames ayant la plus faible latence, en échange d'une autonomie et d'une fidélité réduites. |
BATTERIE | Meilleure autonomie de la batterie en échange d'une fidélité ou d'une fréquence d'images réduites. |
Ajoutez du code pour interroger l'état du mode de jeu dans la fonction
onResume
:
Bonnes pratiques
Si votre jeu propose déjà des objectifs de niveau de fidélité et de fréquence d'images, c'est à vous d'identifier les paramètres appropriés pour les modes Économiseur de batterie et Performances :
Si vous souhaitez atteindre les fréquences d'images maximales des appareils, il peut être utile de réduire légèrement le niveau de fidélité.
Pour améliorer l'autonomie de la batterie, nous vous conseillons de réduire la fréquence d'actualisation de l'écran (par exemple, 30 Hz ou 60 Hz) et d'utiliser le frame pacing pour atteindre cette fréquence réduite.
Pour les jeux haute fidélité, tels que les jeux de tir à la première personne, les arènes de combat en ligne multijoueurs (MOBA) et les jeux de rôle, votre priorité doit être d'assurer des fréquences d'images stables afin d'offrir une expérience plus immersive aux utilisateurs.
Pour les jeux haute fidélité et les jeux grand public, autorisez l'utilisation du mode Économiseur de batterie afin d'allonger la durée de jeu en réduisant les fréquences d'images maximales.
Déclarer la compatibilité avec Game Mode
Pour déclarer la compatibilité avec Game Mode et remplacer toutes les interventions Game Mode effectuées par des OEM, commencez par ajouter la configuration Game Mode à l'élément <application>
dans votre fichier AndroidManifest.xml
:
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
Créez ensuite un fichier game_mode_config.xml
dans le répertoire res/xml/
de votre projet avec le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="true"
android:supportsPerformanceGameMode="true"
/>
Changer de mode de jeu
Pour basculer entre les modes de jeu, vous pouvez utiliser le Tableau de bord Jeux (disponible sur les appareils Pixel) ou toute application similaire fournie par un OEM. Vous pouvez également utiliser la commande shell Game Mode pendant le développement.
Si vous utilisez le Tableau de bord Jeux et que l'icône Optimisation ne s'affiche pas au lancement du jeu, vous devrez peut-être importer votre application dans la Google Play Console et l'installer via le Play Store. Pour en savoir plus sur les tests d'application sur le Play Store, consultez la page Partager vos app bundles et APK en interne.
Figure 1 : Tableau de bord Jeux affiché au-dessus du jeu exécuté sur un appareil Pixel
Dans la figure 1, le mode de jeu peut être modifié à partir du widget d'optimisation. Comme indiqué sur le widget, le jeu s'exécute actuellement en mode PERFORMANCE
.
Pendant le développement, si vous utilisez un appareil sans Tableau de bord Jeux et que le fabricant ne propose aucun moyen de définir le mode de jeu pour chaque application, vous pouvez modifier l'état du mode de jeu via adb :
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Exemple d'application
L'exemple d'API Game Mode montre comment optimiser le nombre de frames par seconde (FPS) et les limites de résolution de rendu pour économiser environ 25% d'énergie dans vos applications.
Suivant
Consultez l'article Interventions en mode Jeu. pour améliorer les performances d'un jeu lorsqu'il n'est pas possible de fournir ses mises à jour.