Optimiser la consommation d'énergie de votre application

Ce document décrit les bonnes pratiques à suivre pour optimiser la consommation d'énergie d'une application de navigation mobile que vous créez à l'aide du SDK Navigation. Dans le même temps, il décrit les compromis à prendre en compte lors de la mise en œuvre de ces pratiques. Il aborde en particulier les points suivants:

  • Sources de consommation d'énergie élevée, classées par ordre décroissant.
  • Stratégies d'optimisation de la consommation d'énergie, par ordre d'importance, en commençant par la fréquence d'images.
  • Stratégies pour les utilisateurs finaux afin d'apprendre aux utilisateurs de votre application à gérer l'utilisation de leur appareil pendant la navigation.

Pourquoi optimiser votre application de navigation ?

Selon leur situation, les utilisateurs de votre application peuvent exécuter le guidage de navigation pendant de longues périodes. Par exemple, les livreurs et les livreurs peuvent travailler de longues heures et effectuer des missions dans un territoire inconnu. Dans ce cas, ils s'appuient fortement sur les instructions de navigation détaillées intégrées à l'application. Cela entraîne quelques problèmes courants:

  • Décharge de la batterie et disponibilité des chargeurs. Une utilisation intensive de la navigation peut entraîner une décharge plus rapide de la batterie de l'appareil. Bien que de nombreux utilisateurs puissent résoudre ce problème en chargeant leur appareil dans le véhicule, les conducteurs de deux-roues ne peuvent pas le faire.
  • L'appareil ralentit en raison de la chaleur. Même les utilisateurs qui chargent leur appareil en continu peuvent rencontrer des problèmes. Une consommation d'énergie élevée sur de longues périodes peut faire chauffer l'appareil, ce qui entraîne une limitation thermique et une perte de performance.

Les applications de navigation détaillée reposent sur des fonctionnalités gourmandes en énergie, telles que l'écran, le GPS et la communication radio avec les antennes-relais. Il est donc recommandé d'optimiser la consommation d'énergie de votre application mobile. En outre, vous devez tenir compte des besoins en énergie de votre audience cible afin de trouver le bon compromis entre performances et optimisation de la consommation d'énergie.

Qu'est-ce qui consomme le plus d'énergie ?

Cette section divise les activités dans l'application associées à une consommation d'énergie élevée en deux catégories:

  • Rendu de l'écran
  • Notifications de position

Rendu de l'écran

Le rendu d'écran entraîne généralement la consommation d'énergie la plus élevée dans les applications de navigation mobiles. Chaque fois que l'appareil dessine une carte et d'autres éléments d'interface utilisateur à l'écran, il repose sur le traitement du GPU et du processeur. De même, lorsque l'utilisateur laisse l'écran allumé pendant de longues périodes, cela consomme également plus d'énergie.

Dans une certaine mesure, vous pouvez vous attendre à une consommation d'énergie élevée de la part des conducteurs ou des usagers qui se déplacent sur une carte visible, en particulier s'ils utilisent l'application en continu pendant de nombreuses heures. Dans ce scénario, l'application effectue également un taux de rendu plus élevé à l'écran, car la carte est ensuite mise à jour en temps réel. Dans certains cas, l'écran peut se redessiner presque en continu, en particulier lorsque l'utilisateur se déplace sans s'arrêter d'un lieu à l'autre.

Notifications de position

En plus du rendu de l'écran, deux autres activités de navigation consomment de l'énergie:

  • Utilisation du GPS et de l'antenne-relais
  • Mises à jour et partage de position, par exemple pour fournir une heure d'arrivée prévue ou signaler la position d'un véhicule dans une flotte.

La communication GPS et la radio cellulaire reposent toutes deux sur des opérations de démarrage gourmandes en énergie : le GPS doit trouver des satellites et les radios cellulaires doivent négocier avec les tours et établir une connexion. Pour ces raisons, ils s'exécutent essentiellement en continu pendant la navigation, même si les cellules GSM restent actives pendant 20 à 30 secondes afin de réduire les coûts de démarrage. Le système d'exploitation contrôle ces paramètres que vous ne pouvez pas facilement configurer dans votre application.

Pour les mises à jour de la position, la consommation d'énergie varie en fonction de facteurs imprévisibles. Par exemple, la distance entre l'appareil et la station d'accueil cellulaire détermine la consommation d'énergie, car l'appareil utilisera le signal minimal nécessaire pour poursuivre la navigation et éviter de changer de tour. Par conséquent, un appareil se déplaçant dans une zone à faible connectivité consomme plus d'énergie qu'un appareil proche d'une station d'accueil. En outre, certaines applications peuvent partager des mises à jour de position avec un service central de gestion de parc et doivent donc communiquer avec un serveur pour cela.

Optimiser la consommation d'énergie de votre application

La difficulté liée à l'optimisation de la consommation d'énergie dans les applications de navigation est que ces applications dépendent fortement de ressources énergivores, ce qui limite vos options d'atténuation de l'impact sans faire de compromis, comme limiter l'utilisation de l'écran. Cette section fournit la liste des approches que vous pouvez adopter pour optimiser votre application, du plus au moins efficace.

Modifier la fréquence d'images

L'écran met à jour ce qu'il affiche à une fréquence appelée "fréquence d'images". La fréquence d'images est généralement mesurée en images par seconde (FPS). Étant donné que le rendu à l'écran utilise beaucoup de processeur ou de GPU, vous pouvez réduire la fréquence d'images pour économiser de l'énergie.

Lors de la réduction de la fréquence d'images, contrepartie, le rendu à l'écran peut sembler moins fluide, en particulier si la carte est mise à jour fréquemment. Cela peut être particulièrement évident lorsque l'utilisateur fait un zoom avant sur la carte pour afficher des détails élevés, lorsque l'utilisateur se déplace à grande vitesse, ou lorsqu'il change de vitesse ou de direction de façon importante.

Pour en savoir plus sur la modification des fréquences d'images, consultez la section Fréquence d'images dans la documentation du développeur Android Media Dev Center.

Bien que vous ne puissiez pas contrôler la façon dont l'utilisateur final règle la luminosité de l'écran de son appareil ou la durée pendant laquelle son écran reste allumé, vous pouvez fournir une option de guidage de navigation sans carte. Cela permettrait à l'utilisateur final de choisir cette option afin d'économiser l'énergie. Par exemple, si les conducteurs travaillent régulièrement dans le même quartier, ils n'ont peut-être pas besoin d'être guidés aussi souvent par une carte. Vous pouvez activer la navigation sans carte en définissant une destination et en lançant le guidage dans le SDK Navigation, sans afficher de carte.

Pour masquer l'UI de navigation, n'ajoutez pas de NavigationView ni de SupportNavigationFragment. Si vous l'avez déjà fait, supprimez le code qui les ajoute. Le code suivant est modifié à partir de l'application de démonstration Android du SDK Navigation et montre comment utiliser des commentaires pour supprimer le code qui ajoute l'UI de navigation:

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

Le SDK Navigation continuera à mettre à jour les positions de route suivies, l'heure d'arrivée prévue et la distance du trajet restante. Votre application peut toujours s'abonner à tous les événements déclenchés par le SDK au fur et à mesure que le conducteur progresse. Cela ne convient pas à tous les cas d'utilisation et n'est évidemment pas un bon conseil si le conducteur doit voir la carte et suivre les indications visuelles. Les captures d'écran suivantes illustrent côte à côte l'activation/la désactivation des vues de la carte pendant la navigation active.

Application de démonstration en cours d'exécution avec la vue plan visible
Figure 1 : Application de démonstration iOS du SDK Navigation affichant la démonstration sur la Retour de données
Application de démonstration en cours d'exécution sans vue plan.
Figure 2 : Application de démonstration exécutée sans vue de carte visible Notez que le temps et la distance restants, ainsi que la position de la route capturée, sont toujours en cours de mise à jour.

Utiliser un style de carte sombre

Envisagez de styliser la carte de façon à utiliser un thème sombre afin de réduire la quantité d'énergie nécessaire pour l'afficher à l'écran.

Le SDK Navigation affiche ses cartes à l'aide du SDK Google Maps pour Android, qui contient des options permettant de styliser les vues de cartes hors navigation dans votre application. La vue de navigation prend également en charge le forçage du mode sombre. Cela peut ne pas affecter tous les appareils de la même manière en raison des différences de type d'écran, mais permet d'économiser de l'énergie dans certains cas. Une étude récente a révélé que la quantité d'énergie économisée par le mode sombre sur certains écrans dépend de la luminosité de l'écran au départ. Par exemple, le mode sombre permet d'économiser plus d'énergie sur les écrans définis sur la luminosité maximale que sur les écrans dont la luminosité est déjà réglée sur 30 à 50% du maximum. Ce point est important à prendre en compte lorsque vous utilisez le mode sombre pour vos applications, car les économies d'énergie dépendent de la façon dont l'utilisateur final définit la luminosité de l'écran.

Pour en savoir plus sur la modification de l'interface utilisateur de Navigation, consultez Modifier l'interface utilisateur de navigation.

Capture d'écran du SDK Navigation exécuté sur un iPhone 15 Pro avec un style de carte sombre.
Figure 3 : SDK Navigation configuré avec un style de carte sombre

Pour créer un style sombre pour votre carte, utilisez un objet MapStyleOptions avec un style JSON qui représente le style sombre de votre choix. Vous pouvez créer les anciens styles JSON à l'aide de l'ancien éditeur de style disponible à l'adresse https://mapstyle.withgoogle.com/.

Modifier la fréquence de mise à jour de la position GPS

Lorsque vous tenez compte de la consommation d'énergie des mises à jour de position envoyées depuis l'appareil, concentrez-vous davantage sur la fréquence des mises à jour de la position plutôt que sur la quantité de données envoyées lors de la transmission.

Il ne s'agit pas d'une fonctionnalité que vous pouvez contrôler directement dans le SDK Navigation, mais si votre application Android demande la position de manière indépendante, nous vous recommandons de suivre les conseils fournis dans l'article Optimiser la localisation pour la batterie de la documentation pour les développeurs Android. Le même conseil s'applique à l'utilisation de sources de localisation autres que le GPS (cellulaire et Wi-Fi).

Informer vos utilisateurs

Les utilisateurs de votre application peuvent souhaiter savoir comment optimiser leur consommation d'énergie. Pour les aider à réduire la consommation d'énergie de leurs applications, conseillez-leur de procéder comme suit:

  • Verrouiller le téléphone
  • Mettre l'application de navigation en arrière-plan
  • Si possible, utilisez la navigation sans carte.
  • Réduire la luminosité de l'écran, soit en utilisant le mode sombre pour les écrans OLED et AMOLED, soit en activant l'adaptation de la luminosité
  • Laissez l'appareil au frais
  • Connectez-vous au réseau Wi-Fi du véhicule (si disponible)
Consultez Optimiser l'autonomie de la batterie de votre appareil Android pour obtenir des conseils sur la façon de prolonger l'autonomie de la batterie sur Android. N'oubliez pas que ce conseil inclut des actions qui pourraient détériorer l'efficacité d'une application de navigation, comme indiqué dans la section Optimiser la consommation d'énergie de votre application de ce guide.

Mesurer la consommation d'énergie

Vous pouvez utiliser des outils professionnels pour mesurer la consommation d'énergie, mais il est souvent difficile ou coûteux de les obtenir. Les applications et les outils de profilage d'IDE tels que Power Profiler dans Android Studio et le volet d'utilisation de la batterie dans l'organisateur XCode mesurent la consommation d'énergie, mais il peut être difficile de supprimer l'effet des processus en arrière-plan ou de définir une référence de performances à mesurer. Dans certains cas, les restrictions liées aux appareils peuvent empêcher l'accès aux données nécessaires.

Vous pouvez utiliser du matériel spécial de surveillance de l'alimentation et modifier la configuration de la connexion de la batterie. Des produits et services commerciaux sont disponibles pour vous y aider. Notez que cette modification peut annuler la garantie de l'appareil.