Doze Mode в Android и Low Power Mode в iOS

🔋1. Doze Mode в Android Doze - режим энергосбережения, введенный в Android 6.0 (Marshmallow), который ограничивает активность приложений, когда устройство не используется длительное время Активируется когда: - Экран выключен - Устройство не на зарядке - Телефон неподвижен (лежит на тсоле и бездейтсвует) 🌙Состояние усиливается со временем- сначала “легкий doze” (через пару минут после выключения экрана, ограничивает сеть, wake locks, GPS/Wi-Fi сканы) 🌙потом “глубокий doze” где уже почти все процессы тормозятся (через ~1-2 часа неподвижности + экран выкл + не на зарядке. Нет сети, wake locks, GPS, alarms, jobs, syncs откладываются до maintenance windows)

//maintenance window - короткое окно когда приложение получает доступ к сети, может выполнить отложенные jobs/syncs и получить deferred alarms

Статусы: ACTIVE Устройство используется или на зарядĸе INACTIVE Устройство недавно вышло из активного режима (пользователь выключил экран, выдернул зарядку и тп) IDLE_PENDING Устройство готовится перейти в режим ожидания (Если за 30 минут с телефоном ничего не делали) IDLE Устройство в режиме бездействия (Если за 30 минут с телефоном ничего не делали) IDLE_MAINTENANCE Открыто короткое окно, чтобы приложения выполнили свою работу

🔋++2. Low Power Mode в iOS ++LPM - ручной или автоматический (при <20%) режим экономии, включается в Settings → Battery или Control Center

Что делает LPM: - Отключает/ограничивает Background App Refresh - Замедляет CPU/GPU - Снижает яркость экрана - Ограничивает авто-дозагрузки, iCloud sync, Mail fetch - На ProMotion-дисплеях 60 Гц вместо 120 - Отключает некоторые визуальные эффекты, анимации - Ограничивает пуши (не все)

//В iOS 18-19 появился Adaptive Power Mode (на iPhone 15 Pro и новее): AI-версия, которая учится привычкам и делает легкие корректировки (яркость, задержки процессов) без явного желтого значка, не такой агрессивный, как классический LPM, но фоновые задачи могут страдать

Где это может поломать приложения: ⚡️Пуш-уведомления с задержкой: FCM high-priority приходит, но обычные silent push или data-sync откладываются в Doze. В iOS LPM - fetch реже, уведомления могут прийти позже ⚡️Location-based reminders: в Doze GPS-обновления редкие, геофенсинг срабатывает с опозданием ⚡️Background fetch/sync(обновление данных в фоновом режиме): в Doze/App Standby - только в maintenance window. В LPM Background Refresh off ⚡️Alarms/таймеры: в Doze будильник может не сработать вовремя (если не setAlarmClock или setAndAllowWhileIdle) ⚡️Чат-приложения: если не high-priority FCM(Firebase Cloud Messaging) - сообщения приходят пачками раз в 15–30 мин //Например в фитнес-приложении трекинг шагов в фоне отставал на часы в Doze, а пользователи думали, что приложение сломано

Doze Mode в Android и Low Power Mode в iOS | Сетка — социальная сеть от hh.ru