Mobilna transmisja danych jest kosztowna, zwłaszcza w miejscach, gdzie pakiety danych nie są dostępne dla wszystkich. Użytkownicy Androida muszą mieć możliwość ograniczenia lub całkowitego zablokowania wykorzystania danych przez aplikacje. Funkcja Oszczędzanie danych w Androidzie 7.0 udostępnia użytkownikowi tę funkcjonalność.
Funkcję Oszczędzanie danych może włączyć lub wyłączyć użytkownik. Deweloperzy aplikacji powinni używać nowego interfejsu API, aby sprawdzać, czy tryb oszczędzania danych jest włączony. Jeśli jest włączona, deweloperzy aplikacji mogą odpowiednio dostosować swoje aplikacje do sytuacji, w której dostęp do danych jest ograniczony lub niemożliwy.
Użytkownicy końcowi zyskują możliwość kontrolowania, które aplikacje mogą uzyskiwać dostęp do danych w tle, a które tylko na pierwszym planie. Dzięki temu użytkownik będzie mógł kontrolować wymianę danych w tle, gdy włączone jest Oszczędzanie danych.
Implementacja
Oszczędzanie danych to funkcja platformy, więc producenci urządzeń uzyskują ją domyślnie w wersji N. Pliki źródłowe znajdziesz w lokalizacji:
packages/apps/Settings/src/com/android/settings/datausage
Interfejs ustawień
Domyślny interfejs ustawień Oszczędzania danych jest dostępny w projekcie Android Open Source Project (AOSP). Przykłady znajdziesz na zrzutach ekranu poniżej.
Te zrzuty ekranu pokazują tryb oszczędzania danych w użyciu.

Rysunek 1. Włączanie i wyłączanie Oszczędzania danych

Rysunek 2. Gdy włączone są zarówno oszczędzanie baterii, jak i oszczędzanie danych

Rysunek 3. Ekran wykorzystania danych przez aplikację: Ustawienia > Aplikacje > Wykorzystanie danych

Rysunek 4. Stan oszczędzania danych w menu Szybkie ustawienia
Aplikacje
Ważne: producenci urządzeń nie powinni umieszczać aplikacji na białej liście. Nawet jeśli tak się stanie, użytkownicy mogą je usunąć. Włączenie innych aplikacji zmusza użytkowników do podjęcia decyzji, w której z nich zastosować oszczędzanie danych.
Wszyscy deweloperzy aplikacji muszą wdrożyć funkcję oszczędzania danych, w tym producenci OEM i operatorzy z wstępnie załadowanymi aplikacjami. Instrukcje dla deweloperów aplikacji dotyczące wykrywania i monitorowania stanów Oszczędzania danych znajdziesz w artykule Oszczędzanie danych na stronie developer.android.com. Więcej informacji przydatnych partnerom znajdziesz w sekcjach poniżej.
Aby zoptymalizować działanie aplikacji w trybie oszczędzania danych, powinny one:
- Usuwanie niepotrzebnych obrazów
- Używaj niższej rozdzielczości w przypadku pozostałych zdjęć
- Używaj filmów o niższej szybkości transmisji
- wywoływać istniejące już „lekkie” wersje usług;
- Kompresowanie danych
- Uwzględniaj stan sieci z pomiarem użycia danych i bez pomiaru, nawet gdy oszczędzanie danych jest wyłączone
Z kolei aplikacje, które mają dobrze współpracować z Oszczędzaniem danych, nie powinny:
- Autoodtwarzanie filmów
- Pobieranie z wyprzedzeniem treści i załączników
- Pobieranie aktualizacji lub kodu
- Proś o dodanie do listy dozwolonych, chyba że dane w tle są rzeczywiście częścią głównej funkcjonalności.
- Traktowanie dodania do białej listy jako licencji na korzystanie z większej przepustowości
Weryfikacja
Aby mieć pewność, że ich wersja funkcji działa zgodnie z oczekiwaniami, osoby wdrażające mogą uruchomić ten test CTS:
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Dodatkowo polecenia adb
można używać do ręcznego przeprowadzania testów. Najpierw uruchom to polecenie, aby zobaczyć wszystkie dostępne opcje:
adb shell cmd netpolicy
Na przykład to polecenie zwraca identyfikatory UID aplikacji z białej listy:
adb shell cmd netpolicy list restrict-background-whitelist