Когда устройство Android переходит в спящий режим?

Я искал SO и в Интернете, но я не мог найти достаточно ответа на мой конкретный вопрос. Хорошо, мы идем:

Каждый пользователь может изменить время ожидания экрана на Android. (когда экран выключается, когда он простаивает в течение __ секунд / минут - выбор пользователя). Но пользователь может изменять ТОЛЬКО тайм-аут экрана, а не когда устройство фактически переходит в спящий режим. Я нашел здесь, что происходит, когда устройство переходит в спящий режим: (Действительно хороший ответ от CommonsWare) Android Sleep / Standby Mode

Хорошо, мой вопрос прост. Как узнать, когда мой телефон перейдет в спящий режим? Пойдет ли спать сразу после выключения экрана? Будет ли он "бодрствовать" некоторое время после выключения экрана? И самое главное: отличается ли спящий режим в конкретном устройстве от устройства марки (как производитель реализует это) или зависит от версии ПЗУ (например, все устройства с питанием от ICS перейдут в спящий режим через X секунд после выключения экрана)?

3 ответа

Решение

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

  • Экран включен - требуется процессор и графический процессор, а следовательно и оперативная память, чтобы оставаться активным
  • Любое приложение, содержащее wakelock - даже самые низкие wakelocks поддерживают процессор, хотя экран может быть выключен

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

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

Существует небольшая разница в энергопотреблении при сравнении телефона с ноутбуком. Ноутбуки в большинстве случаев работают от прямого питания через зарядное устройство. (В основном мы несем заряд с ноутбуком). Мобильные телефоны в основном работают от батареи. (Редко мы носим с собой зарядное устройство).

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

Вот почему при отключении питания ЖК-дисплея (это означает, что пользователь не взаимодействует с телефоном), процессор в течение доли секунды также переходит в режим (спящий режим), где он выполняет минимальную работу и экономит заряд батареи. Когда процессор находится в режиме ожидания, он принимает команды только от RIL (уровня радиоинтерфейса), который в основном состоит из функций SMS и вызова, а также сигналов тревоги. Кроме этого ЦП прекратит выполнение других функций приложений.

Примечание. Если какое-либо приложение требует времени ЦП для своей экстренной работы, когда ЦП находится в режиме ожидания, оно может запросить время ЦП с помощью WAKE LOCKS.

Например, приложение MP3 должно продолжать воспроизводить песни, даже если пользователь выключил ЖК-экран. Это означает, что служба приложения MP3 запросила процессорное время с помощью WAKE LOCKS.

Ваш вопрос: как узнать, когда мой телефон перейдет в спящий режим? - Ответ: просто он переходит в спящий режим, когда ЖК-дисплей выключен, с долей секунд.

Ваш вопрос: Отличается ли спящий режим в конкретном устройстве от устройства марки. Ответ. Поскольку android является открытым исходным кодом, любой OEM-производитель может получить уровень драйвера, который является лицензией GPU, и может изменить диск устройства управления питанием, чтобы он работал по-другому. Все эти режимы сна и пробуждения, наконец, находятся под контролем драйвера Power Manager уровня ядра Linux.

Для тестирования спящего режима / дремоты в Android 6.0 необходимо использовать следующие команды:

$ adb shell dumpsys battery unplug
$ adb shell dumpsys deviceidle step

больше информации смотрите здесь: Оптимизация для Doze и ожидания приложений

Другие вопросы по тегам