Tryb oszczędzania danych

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.

Włączanie i wyłączanie Oszczędzania danych

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

Oszczędzanie baterii i Oszczędzanie danych są włączone

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

Ekran użycia danych przez aplikację

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

Oszczędzanie danych w Szybkich ustawieniach

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