Что такое doze android

Что такое doze android

Освой программирование играючи

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей — и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Читайте на здоровье!

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Новые алгоритмы сна под названием Doze помогут вашему устройству работать на одной зарядке дольше: в моменты, когда аппарат долго лежит неподвижно, не подключен к зарядке и его дисплей не включается для отображения уведомлений, все приложения ставятся на паузу (App Standby), передача данных минимизируется, процессор переходит в энергосберегающий режим, все синхронизации и прочие любители что-нибудь сделать, пока телефон «бездельничает» отправляются в сон.

Впервые этот режим был внедрён в Android Marshmallow и в следующих версиях требования ужесточаются всё больше и больше.

В спящем режиме не выполняются сетевые запросы, кроме GCM с высоким приоритетом. Также могут блокироваться операции синхронизации, задачи по сигнализации событий, сканирование сетей Wi-Fi, работа GPS.

Для особо важных задач можно запустить метод setAndAllowWhileIdle() от AlarmManager, но не чаше одного раза в 15 минут.

Doze Mode

Когда устройство на Android Marshmallow лежит без движения и без зарядки, спустя час оно переходит в Doze Mode. Режим отключки, когда почти все приложения перестают жрать батарею. Это происходит не сразу, а по шагам:

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

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

Например, можно ввести команду отключения питания. Если ваше устройство подключено к компьютеру, то после этой команды вы увидите, что значок зарядки сменится на значок работы от батареи.

Далее вы можете увидеть состояние устройства.

Команда будет возвращать следующие строки в разное время.

Вернуть батарею обратно в обычное состояние зарядки от сети.

Увидеть все доступные команды.

В момент, когда устройство переходит в состояние IDLE:

  • Доступ приложению к сети отключен, пока приложение не получит high-priority GCM-push
  • Система игнорирует Wake Lock. Приложения могут сколько угодно пытаться запросить пробуждение процессора — они их не получат
  • Запланированные Alarm в AlarmManager не будут вызываться, кроме тех, которые будут обновлены с помощью setAndAllowWhileIdle()
  • Система не производит поиска сетей Wi-Fi
  • NetworkPolicyManagerService: пропускает только приложения из белого списка
  • JobSchedulerService: все текущие задачи отменяются. Новые откладываются до пробуждения
  • SyncManager: все текущие отменяются, новые откладываются до пробуждения
  • PowerManagerService: только задачи приложений из белого списка

Соответственно, если наше приложение является чатом, то мы можем отправить с сервера push с полем priority = high. А если у нас приложение будильник, то мы должны обязательно вызвать setAndAllowWhileIdle() или setExactAndAllowWhileIdle().

Во многих других случаях мы вообще не должны об этом переживать, после того, как пользователь возьмет устройство в руки, все заснувшие объекты проснутся и сделают свою работу.

Режим Standby

Если у приложения есть фоновые задачи, но приложение простаивает, то включается режим Standby.

Если приложение простаивает долгое время, то система разрешит делать ему запрос в сеть один раз в сутки.

Читайте также:  Android recyclerview databinding viewmodel

Ремжим App Standby отправляет в изоляцию приложения, которые не подходят под условия:

  • Пользователь явно запустил приложение
  • Приложение имеет процесс, работающий в данный момент на переднем плане (Activity или foreground service, или используется другая активность или foreground service)
  • Приложение создало уведомление, которое висит в списке уведомлений
  • Пользователь принудительно добавил приложение в список исключений оптимизации в настройках системы

Этот режим тоже можно тестировать с помощью команд.

Разбудить приложение можно командой.

Проверить статус приложения:

Например, может вернуться строка.

Есть специальный белый список Whitelist, в который пользователь может добавить исключения. Приложениям из белого списка не страшны ни Doze Mode ни App Standby.

Пользователь может настроить нужные приложения, чтобы они не включали режим ожидания Standby. Для этого идём в Настройки | Приложения, нажимаем на значок шестерёнки и выбираем пункт Экономия заряда батареи. В выпадающем списке Не экономят заряд можно увидеть программы, которые не используют режим ожидания. Переключитесь на Все приложения и выберите нужно приложение из списка. В диалоговом окне можете установить режим Не экономить.

Можно программно узнать, находится ли приложение в «белом списке» приложений, которым разрешено не экономить заряд. Нужно указать имя пакета приложения (не обязательно указывать своё приложение).

Если находится, то вернёт true, иначе — false.

Сами вы не сможете добавить своё приложение в белый список, это может сделать только пользователь вручную. Но вы можете ему показать нужный экран настройки, чтобы он его не искал.

Более агрессивный способ, когда вы явно вызывает диалоговое окно для добавления приложения в белый список.

В манифесте следует прописать разрешение.

Если приложение уже находится в белом списке, то диалоговое окно не появится.

Источник

Что такое doze android

Краткое описание:
Программа может ограничивать прием или передачу данных отдельных приложений

Описание:
Все мы знаем, что передача данных — одна из причин сильного расхода батареи. Если передача данных включена в течение всего дня, приложения смогут ее использовать даже при выключенном экране.
Когда экран выключен, Doze может ограничивать прием или передачу данных отдельных приложений без отключения мобильной передачи данных или Wi-Fi. Это дает возможность продлить время использования телефона намного дольше.

Наша программа отличается от режима энергосбережения в Android Lollipop.
1. Когда вы включаете режим энергосбережения в Android Lollipop, отключается активная передача данных и приложения могут обновиться лишь тогда, когда вы их используете. Doze лучше! Когда ваш экран включен, приложения продолжают нормальную работу. Вам не надо обновлять приложения вручную.
2. Doze имеет поддержку, начиная с Android 4.1.Режим энергосбережения доступен только начиная с Android 5.0.

Наша программа отличается от режима Doze в Android 6.0 M.

1. Функция Doze в Android M активна только тогда, когда телефон\планшет отключен от зарядки, не используется более чем 30 минут и отключен экран.
Вы можете активировать нашу программу в любое время из меню приложений и это намного легче.
2. Наша программа поддерживает больше версий Android.
В итоге, вы имеете более удобную и функциональную программу.

Как оставить приложение активным при выключенном экране?

В следующем обновлении мы добавим активный список приложений. Приложения, добавленные в активный список, продолжают нормальную работу при выключенном экране.

Необходимые разрешения.

Для активации функций мы установим VPN-соединение (это необходимо для блокировки передачи данных).
Пожалуйста, разрешите установку VPN-соединения когда получите подсказку.

Требуется Android: 4.1+
Русский интерфейс: Да

Сообщение отредактировал Sotik — 07.06.16, 12:10

Источник

Что такое doze android

Краткое описание:
Программа может ограничивать прием или передачу данных отдельных приложений

Описание:
Все мы знаем, что передача данных — одна из причин сильного расхода батареи. Если передача данных включена в течение всего дня, приложения смогут ее использовать даже при выключенном экране.
Когда экран выключен, Doze может ограничивать прием или передачу данных отдельных приложений без отключения мобильной передачи данных или Wi-Fi. Это дает возможность продлить время использования телефона намного дольше.

Читайте также:  Ios интерфейс для android

Наша программа отличается от режима энергосбережения в Android Lollipop.
1. Когда вы включаете режим энергосбережения в Android Lollipop, отключается активная передача данных и приложения могут обновиться лишь тогда, когда вы их используете. Doze лучше! Когда ваш экран включен, приложения продолжают нормальную работу. Вам не надо обновлять приложения вручную.
2. Doze имеет поддержку, начиная с Android 4.1.Режим энергосбережения доступен только начиная с Android 5.0.

Наша программа отличается от режима Doze в Android 6.0 M.

1. Функция Doze в Android M активна только тогда, когда телефон\планшет отключен от зарядки, не используется более чем 30 минут и отключен экран.
Вы можете активировать нашу программу в любое время из меню приложений и это намного легче.
2. Наша программа поддерживает больше версий Android.
В итоге, вы имеете более удобную и функциональную программу.

Как оставить приложение активным при выключенном экране?

В следующем обновлении мы добавим активный список приложений. Приложения, добавленные в активный список, продолжают нормальную работу при выключенном экране.

Необходимые разрешения.

Для активации функций мы установим VPN-соединение (это необходимо для блокировки передачи данных).
Пожалуйста, разрешите установку VPN-соединения когда получите подсказку.

Требуется Android: 4.1+
Русский интерфейс: Да

Сообщение отредактировал Sotik — 07.06.16, 12:10

Источник

Что такое doze android

Краткое описание:
Программа может ограничивать прием или передачу данных отдельных приложений

Описание:
Все мы знаем, что передача данных — одна из причин сильного расхода батареи. Если передача данных включена в течение всего дня, приложения смогут ее использовать даже при выключенном экране.
Когда экран выключен, Doze может ограничивать прием или передачу данных отдельных приложений без отключения мобильной передачи данных или Wi-Fi. Это дает возможность продлить время использования телефона намного дольше.

Наша программа отличается от режима энергосбережения в Android Lollipop.
1. Когда вы включаете режим энергосбережения в Android Lollipop, отключается активная передача данных и приложения могут обновиться лишь тогда, когда вы их используете. Doze лучше! Когда ваш экран включен, приложения продолжают нормальную работу. Вам не надо обновлять приложения вручную.
2. Doze имеет поддержку, начиная с Android 4.1.Режим энергосбережения доступен только начиная с Android 5.0.

Наша программа отличается от режима Doze в Android 6.0 M.

1. Функция Doze в Android M активна только тогда, когда телефон\планшет отключен от зарядки, не используется более чем 30 минут и отключен экран.
Вы можете активировать нашу программу в любое время из меню приложений и это намного легче.
2. Наша программа поддерживает больше версий Android.
В итоге, вы имеете более удобную и функциональную программу.

Как оставить приложение активным при выключенном экране?

В следующем обновлении мы добавим активный список приложений. Приложения, добавленные в активный список, продолжают нормальную работу при выключенном экране.

Необходимые разрешения.

Для активации функций мы установим VPN-соединение (это необходимо для блокировки передачи данных).
Пожалуйста, разрешите установку VPN-соединения когда получите подсказку.

Требуется Android: 4.1+
Русский интерфейс: Да

Сообщение отредактировал Sotik — 07.06.16, 12:10

Источник

Doze на новом Android-e: что это, и как оно работает?

Новый «зефирный» Android, как уже известно, должен наилучшим образом влиять на автономность работы мобильных устройств. Проще говоря, эта система позволяет смартфонам и планшетам работать дольше без подзарядки.

Собственно, ничего сенсационного в этом нет, так как об оптимизации энергозатрат так или иначе упоминается в описании каждой новой мобильной ОС, а не только Android.

Но в этот раз в Google, очевидно, решили предложить пользователям нечто более заметное, чем просто маркетинг.

И предложили Doze.

С английско-американского это слово можно перевести как «сон». Фактически doze mode — это и есть «спящий режим». Но в Android 6.0 Marshmallow термином doze обозначается целый набор изменений и правил, с которыми бездействующий смартфон или планшет практически вообще не потребляет заряд батареи. Опять же, ничего нового, казалось бы. Но, как говорится, есть довольно интересные нюансы, о которых не мешает узнать подробнее.

Читайте также:  Android как удалить языки

Прежде всего отметим, что режим doze в Android включать не нужно. Для него вы не найдете никаких выключателей и/или отдельных настроек, которые можно менять или переключать. Doze в Android просто есть, и активируется эта функция автоматически и в нужный момент. Сама, т.е. без участия или согласия/несогласия юзера. Более того, работу doze вы тоже не заметите.

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

И вот когда вы оставите ваш смартфон в полном покое, включается «режим» Doze, и аппарат в буквальном смысле засыпает. Ну, почти. Он по-прежнему будет выдавать уведомления, если какое-нибудь из важных приложений вдруг решит обратить на себя ваше внимание, звонки и СМС тоже будут проходить и смартфон, конечно, проснется, но вот, скажем, на уведомления об email-сообщениях, разных событиях в онлайн-игрушках и прочие менее значительные данные он отзываться уже не будет.

Понятно, что теперь разработчики будут крайне заинтересованы в накрутке приоритетности своих приложений, но в Google с потенциальными злоупотреблениями здесь бороться начали заблаговременно.

Потому в режиме Doze все даже самые высокоприоритетные уведомления приложений, которые не проходят через сеть мобильного оператора (а это звонки и текстовые сообщения), сначала направляются на сервер Google Cloud Messaging. И если там обнаруживается, что чей-то программный продукт ведет себя слишком беспокойно, то к нему будут приняты меры воспитательного характера. Есть мнение, что такие приложения больше не смогут получать статус высокоприоритетных.

Впрочем, это не означает, что Google вообще не будет пропускать на ваш смартфон важные уведомления в режиме Doze. Просто пока смартфон спит, сервер Google все низкоприоритетные уведомления сервер Google будет автоматически собирать в один большой пакет, и со всей пропущенной информацией от неприоритетных приложений вы сможете ознакомиться позже. Именно этим Doze и отличается от привычной всем функции «Не беспокоить» в Android. К слову, в компании такой сервис назвали «Idle maintenance window» (буквально «окно обслуживания в режиме простоя»).

В чем же реальна польза Doze?

Говорят, что в этом «режиме» заряд батареи таки заметно экономится. Конечно, не тогда, когда вы пользуетесь своим смартфоном, но зато когда вы им не пользуетесь (ночью, к примеру), то и батарейку различные приложения и сервисы тоже не садят попусту. Правда, кое-кто их юзеров пишет, что в местах со слабым сигналом мобильной сети Doze не отключает поиск сигнала, что, как известно, является процессом весьма энергозатратным, но в остальном, судя по отзывам, юзеры находят Doze решением полезным и своевременным.

Как пишут многие, за ночь их смартфоны расходуют вместо обычных 10-20% заряда примерно 2-5%. Плюс к этому, в частности многие владельцы Nexus отмечают, что общая автономность их аппаратов увеличилась с 16-20 часов до 24-30 часов, что, само собой, весьма существенно. Впрочем, имеет смысл дождаться настоящих тестов, чтобы составить более полное впечатление об эффективности Doze. На этом пока всё.

Источник

Оцените статью