Использование мобильных данных обходится дорого, особенно там, где тарифные планы не всем по карману. Пользователям Android нужна возможность сократить использование данных или вообще заблокировать их в приложениях. Функция Data Saver в выпуске Android 7.0 предоставляет эту функциональность пользователю.
Функция Data Saver может быть включена или выключена пользователем. Разработчики приложений должны использовать новый API для проверки того, включен ли режим Data Saver. Если он включен, разработчики приложений могут изящно справиться с ситуацией, настроив свои приложения на низкий или нулевой доступ к данным.
Конечные пользователи выигрывают, поскольку они смогут контролировать, какие приложения могут получать доступ к данным в фоновом режиме, а какие могут получать доступ к данным только на переднем плане. Это обеспечивает желаемый фоновый обмен данными, когда Data Saver включен для каждого пользователя.
Выполнение
Поскольку Data Saver является функцией платформы, производители устройств получают ее функциональность по умолчанию с выпуском N. Исходные файлы можно найти в: пакеты/приложения/Настройки/src/com/android/настройки/datausage
Интерфейс настроек
Пользовательский интерфейс настроек Data Saver по умолчанию поставляется в Android Open Source Project (AOSP). Смотрите скриншоты ниже для примеров.
На этих снимках экрана показано использование режима экономии данных.

Рисунок 1. Включение/выключение функции Data Saver

Рисунок 2. Когда включены оба режима: экономия заряда батареи и экономия данных

Рисунок 3. Экран использования данных для конкретного приложения: Настройки > Приложения > Использование данных

Рисунок 4. Состояния экономии данных в меню быстрых настроек
Приложения
Важно : Разработчики устройств не должны добавлять приложения в белый список. Даже если они это сделают, пользователи могут удалить их. Включение других приложений заставляет пользователей решать, к какому из них применить Data Saver.
Все разработчики приложений должны действовать, чтобы внедрить Data Saver, включая OEM-производителей и операторов с предустановленными приложениями. См. Data Saver на developer.android.com для инструкций разработчикам приложений по обнаружению и мониторингу состояний Data Saver. См. разделы ниже для получения дополнительных сведений, полезных для партнеров.
Для оптимизации режима экономии данных приложения должны:
- Удалите ненужные изображения.
- Для остальных изображений используйте более низкое разрешение.
- Использовать видео с более низким битрейтом
- Запуск существующих «облегченных» впечатлений
- Сжатие данных
- Учитывать статус сети с фиксированным и нефиксированным трафиком, даже если функция экономии данных отключена
И наоборот, для эффективной работы с функцией Data Saver приложения не должны:
- Автовоспроизведение видео
- Предварительная загрузка контента/вложений
- Загрузить обновления/код
- Попросите внести вас в белый список, если только фоновые данные действительно не являются частью основных функций
- Относитесь к белому списку как к лицензии на использование большей пропускной способности
Проверка
Разработчики могут убедиться, что их версия функции работает так, как задумано, выполнив следующий тест CTS:
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Кроме того, команды adb
можно использовать для проведения тестов вручную, предварительно выполнив эту команду, чтобы увидеть все доступные параметры:
adb shell cmd netpolicy
Например, эта команда возвращает UID приложений из белого списка:
adb shell cmd netpolicy list restrict-background-whitelist