Optimiser la consommation d'énergie de votre application

Ce document décrit les bonnes pratiques à suivre pour optimiser la consommation d'énergie dans une application de navigation mobile que vous créez à l'aide du SDK Navigation. Il décrit également les compromis à prendre en compte lors de l'utilisation de ces pratiques. En particulier, ce document couvre les points suivants :

  • Sources de forte consommation d'énergie, classées de la plus élevée à la plus faible.
  • 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 permettant d'expliquer aux utilisateurs de votre application comment gérer l'utilisation de leur appareil pendant la navigation.

Pourquoi optimiser votre application de navigation ?

En fonction de leur situation, les utilisateurs de votre application peuvent exécuter des conseils de navigation pendant de longues périodes. Par exemple, les chauffeurs et les livreurs peuvent travailler de longues heures et effectuer des missions dans des zones qu'ils ne connaissent pas. Dans ce cas, ils s'appuient fortement sur les instructions détaillées dans l'application. Cela entraîne certains problèmes courants :

  • L'épuisement de la batterie et la disponibilité des chargeurs. Une utilisation intensive de la navigation peut entraîner une décharge plus rapide que prévu de la batterie de l'appareil. Alors que de nombreux utilisateurs peuvent résoudre ce problème en rechargeant leur appareil dans le véhicule, les conducteurs de deux-roues ne le peuvent pas.
  • L'appareil est limité en raison de la chaleur. Même les utilisateurs qui rechargent constamment leur appareil peuvent rencontrer des problèmes. Une consommation d'énergie élevée pendant de longues périodes peut entraîner une surchauffe de l'appareil, ce qui provoque une limitation thermique et une perte de performances.

Les applications de navigation GPS s'appuient 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. De plus, vous devez tenir compte des besoins en énergie de votre audience cible afin de trouver le bon équilibre 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 forte consommation d'énergie en deux catégories :

  • Rendu de l'écran
  • Mises à jour de position

Rendu de l'écran

Le rendu de l'écran est généralement la cause de la plus forte consommation d'énergie dans les applications de navigation mobile. Chaque fois que l'appareil dessine une carte et d'autres éléments d'interface utilisateur à l'écran, il s'appuie sur le traitement du GPU et du CPU. De même, lorsque l'utilisateur laisse cet écran allumé pendant de longues périodes, cela consomme également plus d'énergie.

Dans une certaine mesure, vous pouvez vous attendre à une forte consommation d'énergie de la part des conducteurs ou des passagers qui s'appuient sur une carte visible pour naviguer, 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é sur l'écran, car la carte est alors 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 d'un lieu à un autre sans s'arrêter.

Mises à jour de position

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

  • Utilisation des antennes-relais et du GPS
  • Mises à jour et partage de la 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 radio mobile repose sur des opérations de démarrage gourmandes en énergie : le GPS doit trouver des satellites et les radios mobiles doivent négocier avec les antennes et établir une connexion. Pour ces raisons, ils s'exécutent essentiellement en continu pendant la navigation, même si les radios cellulaires restent actives pendant 20 à 30 secondes pour tenter de minimiser les coûts de démarrage. Le système d'exploitation contrôle ces paramètres, que vous ne pouvez pas configurer facilement 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 de base cellulaire détermine la consommation d'énergie, car l'appareil utilise le signal minimal nécessaire pour continuer la navigation afin d'éviter de changer d'antenne. Par conséquent, un appareil qui navigue dans une zone où la connectivité est mauvaise consommera plus d'énergie qu'un appareil qui se trouve à proximité d'une station de base. De plus, certaines applications peuvent partager des mises à jour de localisation avec un service central de gestion de flotte et doivent donc communiquer avec un serveur pour ce faire.

Optimiser la consommation d'énergie de votre application

Le défi de 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 pour atténuer l'impact sans faire de compromis, comme la restriction de l'utilisation de l'écran. Cette section fournit une liste d'approches que vous pouvez adopter pour optimiser votre application, classées de la plus à la moins efficace.

Modifier la fréquence d'images

L'écran actualise 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 (IPS). Étant donné que le rendu de l'écran utilise beaucoup de ressources du processeur ou du GPU, vous pouvez réduire la fréquence d'images pour économiser de l'énergie.

Le compromis lorsque vous réduisez la fréquence d'images est que le rendu de l'écran peut sembler moins fluide, en particulier si la carte est mise à jour fréquemment. Cela peut être particulièrement visible lorsque la carte est agrandie, lorsque l'utilisateur se déplace à grande vitesse ou lorsqu'il change de vitesse ou de direction de manière importante.

Pour en savoir plus sur la modification de la fréquence d'images, consultez la section Fréquence d'images de la documentation pour les développeurs Android Media Dev Center.

Vous ne pouvez pas contrôler la luminosité de l'écran de l'appareil de l'utilisateur final ni la durée pendant laquelle il laisse son écran allumé, mais vous pouvez lui proposer une option de guidage sans carte. L'utilisateur final pourra choisir cette option pour économiser de 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 par une carte aussi souvent. La navigation sans carte peut être activée en définissant une destination et en démarrant 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 l'utilisation de 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 de mettre à jour les positions sur la route, l'heure d'arrivée prévue et la distance restante du trajet. Votre application pourra toujours s'abonner à tous les événements déclenchés par le SDK au fur et à mesure de la progression du conducteur. Cette approche ne convient pas à tous les cas d'utilisation et, bien sûr, n'est pas un bon conseil dans les cas où le conducteur doit voir la carte et suivre le guidage visuel. Les captures d'écran suivantes illustrent une comparaison côte à côte de l'activation et de la désactivation des vues de carte pendant la navigation active.

Application de démonstration exécutée avec la vue Carte visible.
Figure 1. L'application de démonstration iOS du SDK Navigation montre la démo Data Back.
Application de démonstration exécutée sans vue de carte visible.
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 sur la route, sont toujours en cours de mise à jour.

Utiliser un style de carte sombre

Envisagez de styliser la carte pour 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 toutes les vues de carte non liées à la navigation dans votre application. La vue de navigation permet également de forcer le 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 cela permet de réaliser des économies d'é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é initiale de l'écran. Par exemple, le mode sombre permet d'économiser plus d'énergie sur les écrans dont la luminosité est réglée au maximum que sur ceux dont la luminosité est déjà ajustée à 30 à 50 % du maximum. Il est important d'en tenir compte lorsque vous utilisez le mode sombre pour vos applications, car les économies d'énergie dépendent de la luminosité de l'écran définie par l'utilisateur final.

Pour en savoir plus sur la modification de l'UI de navigation, consultez Modifier l'UI de navigation.

Capture d'écran du SDK Navigation s'exécutant 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. Les anciens styles JSON peuvent être créés à l'aide de l'ancien éditeur de style disponible sur https://mapstyle.withgoogle.com/.

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

Lorsque vous examinez la consommation d'énergie liée aux mises à jour de la position envoyées par l'appareil, concentrez-vous davantage sur la fréquence des mises à jour de la position que sur la quantité de données envoyées lors de la transmission.

Vous ne pouvez pas contrôler directement cela dans le SDK Navigation, mais si votre application Android demande la position de manière indépendante, vous devez tenir compte des conseils de l'article Optimiser la position pour la batterie dans la documentation pour les développeurs Android. Les mêmes conseils s'appliquent à l'utilisation de sources de localisation non 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 à vos utilisateurs de procéder comme suit :

  • Verrouiller le téléphone
  • Mettre l'application de navigation en arrière-plan
  • Utiliser la navigation sans carte si possible
  • Réduisez la luminosité de l'écran en utilisant le mode sombre pour les écrans OLED et AMOLED, ou en activant la luminosité adaptative.
  • Refroidissez l'appareil
  • Se connecter au Wi-Fi embarqué, si disponible
Consultez Optimiser l'autonomie de la batterie de votre appareil Android pour obtenir des conseils destinés aux utilisateurs finaux sur l'extension de l'autonomie de la batterie sur Android. N'oubliez pas que ces conseils incluent des actions qui pourraient nuire à l'efficacité d'une application de navigation, comme indiqué dans Optimiser la consommation d'énergie de votre application dans 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 outils de profilage des applications et des IDE, tels que Power Profiler dans Android Studio et le volet "Utilisation de la batterie" dans l'organisateur Xcode, mesurent la consommation d'énergie. Toutefois, il peut être difficile de supprimer l'effet des processus en arrière-plan ou de définir une référence de performances par rapport à laquelle effectuer les mesures. Dans certains cas, les restrictions de l'appareil peuvent empêcher l'accès aux données nécessaires.

Vous pouvez utiliser du matériel de surveillance de l'alimentation spécialisé et modifier la configuration de la connexion de la batterie. Des produits et services commerciaux existent pour vous aider à le faire. Notez que la modification des appareils de cette manière peut annuler la garantie de l'appareil.