Android Doze Mode

Android Doze Mode

t.me/qa_chillout

Android Doze Mode — это режим, в который Android переходит, когда телефон долго лежит без движения. В нём система старается экономить заряд и поэтому сильно ограничивает работу приложений в фоне.


Пользователь не может сам включить Doze Mode — его включает сама система, когда выполняются условия:

  • телефон лежит без движения;
  • экран долго выключен;
  • устройство не на зарядке;
  • нет активного использования.

Однако пользователь может косвенно повлиять на Doze Mode, например:

  • разблокировать телефон → Doze Mode отключится,
  • подключить зарядку → Doze Mode отключится,
  • выключить оптимизацию батареи для конкретного приложения → Doze Mode будет действовать мягче.

Но кнопки «Включить Doze Mode» не существует — режим полностью автоматический.


Что происходит в Doze Mode

Когда устройство лежит неподвижно с выключенным экраном, Android постепенно переводит его в «глубокий сон». В этом режиме:

Ограничивается:

  • выполнение фоновых задач и сервисов,
  • сетевые операции,
  • доступ к Wi-Fi и мобильному интернету (почти полностью),
  • синхронизация данных,
  • отложенные операции JobScheduler / WorkManager (в Android есть специальные механизмы, которые позволяют приложению выполнять задачи позже, когда система решит, что это удобно и безопасно для батареи),
  • приём обычных пуш-уведомлений (FCM не доставляются сразу).

Разрешается только:

  • высокоприоритетные FCM-пуши,
  • звонки,
  • SMS,
  • будильники.


Зачем тестировщику знать про Doze Mode

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

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

Doze Mode существенно влияет на доставку push-уведомлений, которые являются критически важным каналом коммуникации для банковских приложений, приложений доставки, медицинских сервисов, систем мониторинга и любых продуктов, предполагающих оперативное взаимодействие с пользователем. В Doze Mode обычные FCM-уведомления задерживаются до выхода устройства из режима энергосбережения. При тестировании важно убедиться, что приложение корректно использует приоритеты уведомлений, правильно обрабатывает их после пробуждения устройства и не теряет состояние задач при переходе между режимами.

Кроме того, Doze Mode влияет на механизмы пробуждения процессора и работу wake locks. Если приложение удерживает процессор активным дольше, чем нужно, система может принудительно ограничить его работу, что иногда приводит к неожиданным сбоям или остановке фоновых задач. Тестировщику важно понимать, какие части логики приложения требуют гарантированного выполнения, и проверять, не нарушает ли Doze Mode критические участки функциональности.


Краткий чек-лист тестирования Doze Mode

Подготовка

  • Убедиться, что устройство не подключено к зарядке.
  • Выключить экран и дождаться перехода в Doze Mode (или форсировать через adb).
  • Проверить, что приложение находится в фоне.

Пуш-уведомления

  • Обычные FCM-пуши приходят с задержкой или только после выхода из Doze Mode.
  • High Priority уведомления доставляются сразу.
  • Приложение корректно обрабатывает уведомления после пробуждения.

Фоновые задачи

  • Периодические задачи (WorkManager/JobScheduler) откладываются.
  • Задачи выполняются только во время «окна активности».
  • Приложение корректно восстанавливает работу после выхода из Doze Mode.

Сетевая активность

  • Запросы в фоне не выполняются в Doze Mode.
  • Поведение приложения корректно при отсутствии сети в фоновом режиме.
  • После выхода из Doze Mode запросы возобновляются без ошибок.

UX и жизненный цикл

  • После пробуждения приложение корректно восстанавливает состояние.
  • Нет крашей при длительном нахождении в фоне.
  • Геолокация, Bluetooth, сенсоры корректно реагируют на ограничения Doze.

Выход из Doze Mode

  • Приложение корректно реагирует на разблокировку устройства.
  • Данные обновляются после выхода из Doze без зависаний.


Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page