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. Elle décrit également les compromis à prendre en compte lorsque vous utilisez ces pratiques. En particulier, ce document traite des 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 : expliquez aux utilisateurs de votre application comment 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 des instructions de navigation pendant de longues périodes. Par exemple, les chauffeurs et les coursiers peuvent travailler de longues heures et effectuer des tâches dans un territoire inconnu. Dans ce cas, ils s'appuient fortement sur les instructions détaillées dans l'application. Cela entraîne certains problèmes courants:
- Épuisement 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 que prévu. De nombreux utilisateurs peuvent résoudre ce problème en chargeant leur appareil dans le véhicule, mais ce n'est pas le cas des conducteurs de deux-roues.
- L'appareil est limité en raison de la chaleur. Même les utilisateurs qui rechargent continuellement leur appareil peuvent rencontrer des problèmes. Une consommation d'énergie élevée sur de longues périodes peut entraîner une surchauffe de l'appareil, ce qui entraîne une limitation thermique et une perte de performances.
Les applications de navigation par itinéraires détaillés s'appuient sur des fonctionnalités gourmandes en énergie, comme 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 consommation d'énergie de votre audience cible afin de trouver le juste équilibre entre les performances et l'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
- Mises à jour de position
Rendu de l'écran
Le rendu de l'écran est généralement la cause de la consommation d'énergie la plus élevée 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 consommation d'énergie élevée 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é à 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 d'un endroit à un autre sans s'arrêter.
Mises à jour de position
En plus du rendu de l'écran, deux autres activités de navigation consomment de l'énergie de l'appareil:
- Utilisation des tours de téléphonie mobile et du GPS
- Mises à jour et partage de la position, par exemple pour indiquer une heure d'arrivée prévue ou pour signaler la position d'un véhicule dans un parc
Le GPS et la communication radio cellulaire reposent tous 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 fonctionnent essentiellement en continu pendant la navigation, même si les radios cellulaires restent actives pendant 20 à 30 secondes pour tenter 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 position, la consommation d'énergie varie en fonction de facteurs imprévisibles. Par exemple, la distance entre l'appareil et la station de base mobile détermine la consommation d'énergie, car l'appareil utilise le signal minimal nécessaire pour poursuivre la navigation afin d'éviter de changer de tour. Par conséquent, un appareil qui navigue dans une zone de mauvaise connectivité consomme plus d'énergie qu'un appareil situé à proximité d'une station de base. De plus, certaines applications peuvent partager des mises à jour de position avec un service de gestion de flotte centralisé. Pour ce faire, elles doivent donc communiquer avec un serveur.
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 gourmandes en énergie, ce qui limite vos options pour atténuer l'impact sans faire de compromis, comme limiter l'utilisation de l'écran. Cette section fournit une liste des approches que vous pouvez suivre pour optimiser votre application, de la plus efficace à la 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 CPU ou de GPU, vous pouvez réduire la fréquence d'images pour réduire la consommation d'énergie.
En contrepartie, lorsque vous réduisez la fréquence d'images, l'affichage à l'écran peut sembler moins fluide, en particulier si la carte est mise à jour fréquemment. Cela peut être particulièrement évident lorsque la carte est agrandie pour afficher des détails précis, lorsque l'utilisateur se déplace à grande vitesse ou lorsqu'il modifie considérablement sa vitesse ou sa direction.
Sur les appareils iOS, le SDK Maps pour iOS expose la propriété preferredFrameRate pour contrôler la fréquence d'images. Le tableau ci-dessous indique les valeurs de l'énumérateurGMSFrameRate
que vous pouvez ajuster:
|
Utilisez la fréquence d'images minimale pour économiser de la batterie. |
|
Utilisez une fréquence d'images médiane pour obtenir un rendu plus fluide et économiser des cycles de traitement. |
|
Utilisez la fréquence d'images maximale pour un appareil. Pour les appareils bas de gamme, il s'agit de 30 FPS, et pour les appareils haut de gamme, de 60 FPS. |
Pour référence, consultez GMSFrameRate dans la documentation du SDK Google Navigation pour iOS.
Naviguer sans carte
Vous ne pouvez pas contrôler la façon dont l'utilisateur final définit la luminosité de l'écran de son appareil ni la durée pendant laquelle il le laisse allumé, mais vous pouvez proposer une option de guidage de navigation sans carte. L'utilisateur final pourra ainsi choisir cette option pour économiser de l'énergie. Par exemple, si les conducteurs travaillent régulièrement dans le même quartier, ils n'auront peut-être pas besoin d'indications basées sur les cartes aussi souvent. Vous pouvez activer la navigation sans carte en définissant une destination et en démarrant les instructions dans le SDK Navigation, sans afficher de carte.
Ajoutez une ligne de code pour masquer GMSMapView:
mapView.isHidden = true
Le SDK de navigation continuera de mettre à jour les emplacements de la route, l'heure d'arrivée estimée et la distance restante du trajet. Votre application peut toujours s'abonner à tous les événements générés par le SDK à mesure que le conducteur avance. Cette approche n'est pas adaptée à tous les cas d'utilisation et, bien entendu, ce n'est pas un bon conseil lorsque le conducteur doit voir la carte et suivre les instructions visuelles. Les captures d'écran suivantes illustrent une comparaison côte à côte de l'activation/de la désactivation des vues de carte pendant la navigation active.
Utiliser un style de carte sombre
Envisagez d'utiliser un thème sombre pour la carte 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 iOS, qui contient des options permettant de styliser toutes les vues de carte autres que la navigation dans votre application. La vue de navigation permet également de forcer le mode sombre. Cela n'affecte pas 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 réglés sur la luminosité maximale que sur les écrans dont la luminosité est déjà réglée sur 30 à 50% du maximum. Il est important de tenir compte de ce point lorsque vous utilisez le mode sombre pour vos applications, car les économies d'énergie seront proportionnelles à la luminosité de l'écran définie par l'utilisateur final.
Pour en savoir plus sur la modification de l'UI de navigation, consultez la section Modifier l'UI de navigation.
Configurez votre GMSMapView avec un mapID représentant un style de carte basé dans le cloud défini dans votre projet.Les styles de carte basés dans le cloud nécessitent un ID de carte qui représente une configuration de carte côté serveur créée dans votre projet Google Console. Pour en savoir plus sur la création d'un ID de carte, consultez la documentation destinée aux développeurs sur les ID de carte. Pour en savoir plus sur la conception et le déploiement d'un style de carte basé sur le cloud, consultez la documentation destinée aux développeurs sur la création et la gestion de styles de carte basés sur le cloud.
Modifier la fréquence de mise à jour de la position GPS
Lorsque vous examinez 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 position plutôt 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. Le même conseil s'applique à l'utilisation de sources de localisation autres que le GPS (mobile et Wi-Fi).
Informer vos utilisateurs
Les utilisateurs de votre application peuvent vouloir 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
- Placer l'application de navigation en arrière-plan
- Utiliser la navigation sans carte si possible
- Réduire la luminosité de l'écran, soit en utilisant le mode sombre pour les écrans OLED et AMOLED, soit en activant la luminosité adaptative
- Maintenir l'appareil à une température basse
- Se connecter au Wi-Fi du véhicule, le cas échéant
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 le profileur d'alimentation dans Android Studio et le volet d'utilisation de la batterie dans XCode Organizer mesurent la consommation d'énergie, mais il peut être difficile d'éliminer l'effet des processus en arrière-plan ou de définir une référence de performances à comparer. Dans certains cas, les restrictions de l'appareil peuvent empêcher d'accéder aux données nécessaires.
Vous pouvez utiliser du matériel de surveillance de l'alimentation à usage spécial et modifier la configuration de la connexion de la batterie. Des produits et services commerciaux existent pour vous aider à le faire. Notez que modifier les appareils de cette manière peut annuler la garantie.