L'utilisation des données mobiles est coûteuse, surtout lorsque les forfaits de données ne sont pas abordables pour tous. Les utilisateurs Android doivent pouvoir réduire leur utilisation des données ou la bloquer complètement pour les applications. La fonctionnalité Économiseur de données de la version 7.0 d'Android offre cette possibilité à l'utilisateur.
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 Économie de données est activé. Si elle est activée, les développeurs d'applications peuvent gérer la situation de manière appropriée en adaptant leurs applications pour un accès aux données limité ou inexistant.
Les utilisateurs finaux en bénéficient, 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
L'Économiseur de données étant une fonctionnalité de la plate-forme, les fabricants d'appareils bénéficient de sa 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). Pour obtenir des exemples, consultez les captures d'écran ci-dessous.
Ces captures d'écran montrent le mode Économiseur de données en cours d'utilisation.

Figure 1 : Activer/Désactiver l'économiseur de données

Figure 2. Lorsque l'économiseur de batterie et l'économiseur de données sont activés

Figure 3. Écran de consommation de données spécifique à une application : Paramètres > Applications > Consommation de données

Figure 4. États de l'économiseur de données dans le menu "Réglages rapides"
Applis
Important : Les développeurs d'appareils ne doivent pas ajouter d'applications à la liste blanche. Même si c'est le cas, les utilisateurs peuvent les supprimer. Si vous incluez d'autres applications, les utilisateurs devront 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 É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. Pour en savoir plus, consultez les sections ci-dessous, qui peuvent être utiles aux partenaires.
Pour optimiser le mode Économie de données, les applications doivent :
- Supprimer les images inutiles
- Utiliser une résolution inférieure pour les images restantes
- Utiliser une vidéo avec un débit binaire plus faible
- Déclencher des expériences "Lite" existantes
- Compresser les données
- Respecter l'état du réseau (facturé à l'usage 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 :
- Lire automatiquement les vidéos
- Précharger du contenu/des pièces jointes
- Télécharger les mises à jour / le code
- Demandez à être ajouté à la liste blanche, sauf si les données en arrière-plan font réellement partie de la fonctionnalité principale.
- Considérez l'ajout à la liste blanche comme une autorisation à utiliser plus de bande passante.
Validation
Les développeurs 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 ajoutées à la liste d'autorisation :
adb shell cmd netpolicy list restrict-background-whitelist