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 zareagować, dostosowując 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 wymiana danych w tle będzie przebiegać zgodnie z oczekiwaniami, gdy oszczędzanie danych jest włączone w przypadku poszczególnych użytkowników.
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 jest zarówno oszczędzanie baterii, jak i oszczędzanie danych
Rysunek 3. Ekran wykorzystania danych przez aplikację: Ustawienia > Aplikacje > Wykorzystanie danych
Rysunek 4. Stany 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ąć. Uwzględnienie 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 dla partnerów znajdziesz w sekcjach poniżej.
Aby zoptymalizować działanie aplikacji w trybie oszczędzania danych, powinny one:
- Usuwanie niepotrzebnych obrazów
- Użyj niższej rozdzielczości w przypadku pozostałych obrazów
- Używaj filmów o niższej szybkości transmisji
- wywoływać istniejące już „lekkie” usługi;
- Kompresowanie danych
- Uwzględniaj stan sieci z pomiarem użycia danych i bez pomiaru, nawet gdy oszczędzanie danych jest wyłączone
Z kolei aby dobrze współpracować z Oszczędzaniem danych, aplikacje nie powinny:
- Autoodtwarzanie filmów
- Pobieranie treści/załączników z wyprzedzeniem
- Pobieranie aktualizacji lub kodu
- Prośba 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 wykorzystać do ręcznego przeprowadzania testów. W tym celu najpierw uruchom to polecenie, aby wyświetlić 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