Режим экономии данных

Использование мобильного интернета обходится дорого, особенно если тарифный план не всем по карману. Пользователям Android необходима возможность сократить потребление данных или полностью заблокировать его для приложений. Функция «Экономия данных» в Android 7.0 предоставляет пользователю такую ​​возможность.

Функция экономии трафика может быть включена или выключена пользователем. Разработчикам приложений следует использовать новый API для проверки включения режима экономии трафика. Если он включен, разработчики приложений могут корректно обработать ситуацию, настроив свои приложения на низкий или нулевой уровень потребления трафика.

Конечные пользователи получат выгоду, поскольку смогут контролировать, какие приложения могут получать доступ к данным в фоновом режиме, а какие — только в активном режиме. Это обеспечит желаемый фоновый обмен данными при включенном режиме экономии данных для каждого пользователя.

Выполнение

Поскольку функция экономии трафика уже встроена в платформу, производители устройств получают её функциональность по умолчанию с выходом версии N. Исходные файлы можно найти в:
packages/apps/Settings/src/com/android/settings/datausage

Интерфейс настроек

В проекте Android Open Source Project (AOSP) по умолчанию предоставляется пользовательский интерфейс настроек экономии трафика. Примеры смотрите на скриншотах ниже.

На этих скриншотах показан режим экономии трафика.

Включение/выключение режима экономии трафика

Рисунок 1. Включение/выключение режима экономии трафика.

Режимы энергосбережения и экономии трафика включены.

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

Экран использования данных для конкретного приложения

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

Экономия трафика в быстрых настройках

Рисунок 4. Состояния экономии данных в меню быстрых настроек.

Приложения

Важно : Разработчикам устройств не следует добавлять приложения в белый список. Даже если они это сделают, пользователи могут их удалить. Включение других приложений вынуждает пользователей выбирать, для каких из них применять функцию экономии трафика.

Все разработчики приложений должны внедрить функцию экономии трафика, включая производителей оборудования и операторов связи с предустановленными приложениями. Инструкции по обнаружению и мониторингу состояний экономии трафика для разработчиков приложений см. на сайте developer.android.com. Дополнительные сведения, полезные для партнеров, см. в разделах ниже.

Для оптимизации работы в режиме экономии трафика приложениям следует:

  • Удалите ненужные изображения
  • Для остальных изображений используйте более низкое разрешение.
  • Используйте видео с более низким битрейтом.
  • Запустить существующие «облегченные» версии
  • Сжать данные
  • Соблюдайте режимы сети (оплачиваемый или неоплачиваемый), даже если режим экономии трафика отключен.

И наоборот, для корректной работы с функцией экономии трафика приложениям не следует:

  • Видео с автоматическим воспроизведением
  • Предварительная загрузка контента/вложений
  • Скачать обновления / код
  • Запросите добавление в белый список, если только фоновые данные действительно не являются частью основной функциональности.
  • Рассматривайте добавление в белый список как разрешение на использование большей пропускной способности.

Валидация

Разработчики могут убедиться в корректной работе своей версии функции, запустив следующий тест CTS:

com.android.cts.net.HostsideRestrictBackgroundNetworkTests

Кроме того, команды adb можно использовать для проведения тестов вручную; для этого сначала выполните следующую команду, чтобы увидеть все доступные параметры:

adb shell cmd netpolicy

Например, эта команда возвращает UID приложений, включенных в белый список:

adb shell cmd netpolicy list restrict-background-whitelist