L'utilisation des données mobiles est coûteuse, et encore plus lorsque les forfaits Internet ne sont pas abordables pour tous. Les utilisateurs d'Android doivent pouvoir réduire leur consommation de données ou l'empêcher complètement pour les applications. La fonctionnalité Économiseur de données de la version Android 7.0 offre cette possibilité aux utilisateurs.
L'utilisateur peut activer ou désactiver la fonctionnalité Économiseur de données. Les développeurs d'applications doivent utiliser une nouvelle API pour vérifier si le mode Économiseur de données est activé. Si c'est le cas, ils peuvent gérer la situation de manière appropriée en ajustant leurs applications pour un accès aux données limité ou inexistant.
Les utilisateurs finaux bénéficient de cette fonctionnalité, car ils peuvent contrôler les applications qui peuvent accéder aux données en arrière-plan et celles qui ne peuvent y accéder qu'au premier plan. Cela garantit l'échange de données en arrière-plan souhaité lorsque l'économiseur de données est activé par l'utilisateur.
Implémentation
Étant donné que l'économiseur de données est une fonctionnalité de la plate-forme, les fabricants d'appareils bénéficient de cette fonctionnalité par défaut avec la version N. Recherchez les fichiers sources dans :
packages/apps/Settings/src/com/android/settings/datausage
Interface des paramètres
Une interface utilisateur par défaut pour les paramètres de l'économiseur de données est fournie dans le projet Android Open Source (AOSP). Consultez les captures d'écran ci-dessous pour obtenir des exemples.
Ces captures d'écran montrent le mode Économiseur de données en cours d'utilisation.
Figure 1. Activation/désactivation de l'économiseur de données
Figure 2. Lorsque l'économiseur de batterie et l'économiseur de données sont activés
Figure 3. Écran d'utilisation des données spécifique à une application : Paramètres > Applications > Consommation des données
Figure 4. États de l'économiseur de données dans le menu "Réglages rapides"
Applications
Important : Les implémenteurs d'appareils ne doivent pas mettre d'applications sur liste blanche. Même s'ils le font, les utilisateurs peuvent les supprimer. L'inclusion d'autres applications oblige les utilisateurs à choisir celles auxquelles appliquer l'économiseur de données.
Tous les développeurs d'applications doivent agir pour implémenter l'économiseur de données, y compris les OEM et les opérateurs avec des applications préchargées. Consultez la page Économiseur de données sur developer.android.com pour obtenir des instructions destinées aux développeurs d'applications sur la détection et la surveillance des états de l'économiseur de données. Consultez les sections ci-dessous pour obtenir des informations supplémentaires utiles aux partenaires.
Pour optimiser le mode Économiseur de données, les applications doivent :
- supprimer les images inutiles ;
- utiliser une résolution inférieure pour les images restantes ;
- utiliser un débit vidéo inférieur ;
- déclencher des expériences "lite" existantes ;
- compresser les données ;
- respecter l'état du réseau (mesuré ou non) même lorsque l'économiseur de données est désactivé.
À l'inverse, pour fonctionner correctement avec l'économiseur de données, les applications ne doivent pas :
- Lecture automatique des vidéos
- Précharger le contenu/les pièces jointes
- télécharger des mises à jour / du code ;
- demander à être mises sur liste blanche, sauf si les données en arrière-plan font réellement partie de la fonctionnalité de base ;
- considérer la mise sur liste blanche comme une licence permettant d'utiliser plus de bande passante.
Validation
Les implémenteurs peuvent s'assurer que leur version de la fonctionnalité fonctionne comme prévu en exécutant le test CTS suivant :
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
De plus, les commandes adb peuvent être utilisées pour effectuer des tests manuellement en exécutant d'abord cette commande pour afficher toutes les options disponibles :
adb shell cmd netpolicy
Par exemple, cette commande renvoie les UID des applications mises sur liste blanche :
adb shell cmd netpolicy list restrict-background-whitelist