Что такое *Сотовый режим ожидания* и как я могу предотвратить его потребление моей батареи?

Просматривая статистику батареи, я почти всегда нахожу Cell Standby среди основных потребителей:

Статистика батареи

Я никогда не думал, что «холостой ход» будет потреблять столько энергии. Я видел, что другие люди сталкиваются с подобными проблемами:

Ответы на эти вопросы просто дают некоторые сырые идеи. Я хотел бы знать, что именно стоит за этим, и есть ли способы, чтобы этот «режим ожидания» не съел мою батарею?

Эти проценты не следует сравнивать в разное время; вы должны использовать их только в качестве руководства по относительному энергопотреблению. Имейте в виду, что 100% использования батареи не всегда одинаковы. Просто для примера предположим, что режим ожидания ячейки потребляет 10 мВт, дисплей — 50 мВт, а другое разное использование — 40 мВт. В этом случае ваше общее потребление составит 100 мВт, а сотовый режим ожидания будет потреблять 10%. Если вы выключите дисплей, не изменив ничего другого, сотовый режим ожидания по-прежнему будет составлять 10 мВт, но будет отображаться как 20%, поскольку ваше общее потребление теперь составляет всего 50 мВт.
Я знаю об этом, Том. Но мой «шаблон использования» примерно сопоставим, и, по крайней мере, это дает представление. Я бы хотел, чтобы они дополнительно предоставили здесь абсолютные значения.
Я сталкиваюсь с той же проблемой. Что заставило вас решить эту проблему? Приложение Tasker управляет этим автоматически и решает проблему?

Ответы (1)

Сотовый сигнал

Некоторые фоны, как объяснил ce4 на вопрос «Плохой» прием быстрее разряжает батарею? :

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

Если прием плохой, необходимо соответствующим образом отрегулировать мощность передаваемого сигнала.

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

Детали статистики батареи: телефонный сигнал

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

Как узнать, где находятся мертвые точки?

Я уже показал в своем ответе «Плохой» прием быстрее разряжает батарею? как можно узнать об этих "мертвых зонах" и где они находятся:

Такие приложения, как No Signal Alert 2 и OpenSignalMaps 3 , отслеживают сигнал сотовой связи в фоновом режиме и записывают эти области, чтобы показать вам карту мертвых зон. OpenSignalMaps имеет то преимущество, что показывает вам все доступные сотовые вышки, указывая, к каким из них вы подключены. Он также предлагает вам «компас», указывающий направление на самый сильный сигнал.

нетсигналалерт OpenSignalMaps

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

Как автоматически справиться с этими мертвыми зонами для экономии энергии?

Приложения для автоматизации режима полета

Я добился довольно хороших результатов с двумя приложениями: Autopilot 4 и NoBars Battery Saver 5 . Оба отслеживают сигнал сотовой связи и, когда он слишком сильно падает, переключаются в режим полета на заданное время. Пользователь может определить, как долго это будет длиться. По истечении этого времени режим полета отключается, и вступает в действие мониторинг сотовой связи.

Автопилот NoBars Экономия заряда батареи

На втором графике моего вопроса это отображается как «пробелы» на панели « Сигнал телефона » : поскольку сотовое радио было отключено в режиме полета, цвета не отображаются; система ничего не знала об уровне сигнала в этот период времени. А при выключенном сотовом радио оно тоже не потребляло дополнительного питания (точнее, оно тогда не потребляло никакого питания для этого радио) -- что и было задумано.

С Autopilot единственным раздражающим побочным эффектом было то, что при каждой проверке сигнала он мигал на дисплее около секунды. Кроме того, он дает больше возможностей для настройки пользователем. Однако, поскольку результаты обоих приложений абсолютно сопоставимы, эти дополнительные параметры кажутся не очень необходимыми, хотя их приятно иметь. Еще одним плюсом Autopilot является журнал, предоставляемый пользователю: Таким образом, вы можете увидеть точное время переключения режимов.

Приложения для работы с сетью передачи данных

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

ShutUpBatterySaver Уведомления ShutUpBatterySaver

Однако он никогда не активирует (или деактивирует) режим полета, поэтому мощность, используемая для получения (лучшего) сигнала, останется прежней. Однако при плохом сигнале передача данных потребляет больше энергии, чем при хорошем сигнале, так как, например, потеря пакетов может быть больше. В строке состояния я несколько раз видел, что у него отключена автосинхронизация 7 , так что вроде работает. Не будучи активным пользователем данных (как показывает статистика LBE на том же снимке экрана), я, тем не менее, не мог точно сказать, какую помощь это принесло: по сравнению с двумя приложениями для работы в режиме полета выше, результаты с точки зрения увеличения времени работы от батареи были минимальными. (если есть).

Комбинированное решение

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

Как многие из вас, вероятно, знают, Taskerэто решение для автоматизации на Android. Думаю, он мог бы даже приготовить кофе, если бы наши устройства имели датчики для обнаружения кофе и воды. Поэтому я создал несколько профилей для этого замечательного приложения — и результаты были потрясающими!

Профили задач Уведомления Tasker

Так что в основном это 3 профиля, общающиеся через общую переменную:

  1. %SIGSTATE < 1: проверьте, падает ли сигнал ниже ~25%. Если это так, отключите мобильные данные, установите %SIGSTATE в 1.
  2. %SIGSTATE < 2: проверьте, падает ли сигнал ниже ~15%. Если это так, переключитесь в режим полета, установите %SIGSTATE на 2.
  3. %SIGSTATE > 0: подождите 5 минут, затем отключите режим полета, активируйте мобильные данные, подождите еще 15 секунд (для восстановления сигнала), установите %SIGSTATE в 0.

В моем глобальном профиле Init (который запускается, когда Tasker начинает мониторинг) %SIGSTATE имеет значение 0 (если оно не установлено). Все 3 вышеуказанных профиля дополнительно устанавливают уведомления, как показано на скриншоте выше 9 . Каждое состояние поддерживает одно уведомление (которое заменяется при повторном возникновении того же состояния), самое актуальное состояние всегда находится внизу.

Результаты кажутся даже лучше, чем с двумя вышеприведенными приложениями для управления в режиме полета, но это также может быть связано с немного другими условиями сигнала. Так что это должно быть, по крайней мере, сопоставимо. Используя одно из этих 3 решений, я вернулся домой примерно через 11 часов с зарядом примерно на 20% больше, чем без применения какого-либо из них.

Сказав это, я закончу этот ответ, показав созданные мной профили Tasker , чтобы вы могли использовать их со своей установкой Tasker :

Задача "ИнитВарс":

  • Переменная -> Набор переменных: %SIGSTATE = 0

Задача «Сиглоу»:

  • Сеть -> Мобильные данные: Выкл.
  • Переменная -> Набор переменных: %SIGSTATE = 1
  • Оповещение -> Уведомление о вибрации: Название «IzzySignal»; Текст: «Сигнал низкий; Мобильные данные отключены (Сигнал: %CELLSIG)»

Задача «СигПотерянный»:

  • Переменная -> Набор переменных: %WLANSTATE = 0
  • Переменная -> Набор переменных: %WLANSTATE = 1 IF %Wifi ~ on
  • Сеть -> Режим полета: вкл.
  • Сеть -> Wi-Fi: включено, ЕСЛИ %WLANSTATE ~ 1
  • Переменная -> Набор переменных: %SIGSTATE = 2
  • Оповещение -> Уведомление о вибрации: Заголовок «IzzySignal», Текст: «Сигнал потерян; переход в режим полета»

Задача «СигВозврат»:

  • Задача -> Подождать: 5 минут
  • Сеть -> Режим полета: Выкл.
  • Задача -> Подождите: 15 секунд
    (дайте устройству время найти новый сигнал!)
  • Сеть -> Мобильные данные: Вкл., ЕСЛИ %ROAM ~ Выкл.
    (предотвратите неприятные сюрпризы при возвращении из отпуска за границей!)
  • Переменная -> Набор переменных: %SIGSTATE = 0
  • Оповещение -> Уведомление о вибрации: заголовок «IzzySignal», текст «Сигнал включен; Режим полета отключен (Сигнал: %CELLSIG)»

Теперь про профили:

Профиль SigLowCheck:

  • Состояние -> Переменная -> Значение переменной: Имя «%SIGSTATE», Op «Математика: меньше чем», значение «1»
  • Состояние -> Телефон -> Сила сигнала: от 0 до 2
  • State -> Tasker -> Profile Active: "SigLost", [x] Invert
    (следите за тем, чтобы избежать конфликта: %SIGSTATE~0 && SignalStrength~1 будет соответствовать условию обоих профилей)
  • Задача: Сиглоу

Профиль SigLostCheck:

  • Состояние -> Переменная -> Значение переменной: Имя "%SIGSTATE", Оп "Математика: Меньше", Значение "2"
  • Состояние -> Телефон -> Сила сигнала: от 0 до 1
  • Задача: SigLost

Профиль SigReturnCheck:

  • Состояние -> Переменная -> Значение переменной: Имя "%SIGSTATE", Оп "Математика: Больше чем", Значение "0"
  • Задача: Возврат

Инициализация профиля:

  • Событие -> Tasker -> Запуск монитора
  • Задача: InitVars

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

Еще одно замечание: по крайней мере, с GSM (я не могу сказать для CDMA), выход из режима полета по умолчанию заставляет вас вводить PIN-код SIM-карты. Это, конечно, можно отключить, но в этом случае эта дополнительная защита также исчезает при включении телефона. Не знаю, почему это невозможно выборочно, как это было с моими телефонами до Android.

Однако для некоторых телефонов есть альтернатива некоторым пунктам вышеперечисленных задач, которая снимает это ограничение:

  • В SigLost вместо Сеть -> Режим полета: Вкл. Используйте Телефон -> Радио: Выкл. , если ваш телефон поддерживает это (к сожалению, мой Droid2/Milestone2 не поддерживает). Если вы можете это сделать, проверка Wi-Fi устаревает (и ваш очиститель задач).
  • Тогда и контрреакцию в SigReturn тоже нужно изменить: Вместо Net -> Airplane Mode: Off используйте Phone -> Radio: On .

Пожалуйста, дайте мне знать в комментариях, снимает ли это ограничение PIN-кода SIM-карты, так как я не могу его протестировать (мое устройство не поддерживает его, как описано выше).

Отредактировал t0mm13b

Интересная вещь, которую я заметил, заключалась в том, что в строке состояния появлялось несколько значков задач, что сбивало с толку в отношении состояния, в котором работали профили задач; Я обнаружил, что, установив заголовок для «Уведомления о вибрации» в каждой из вышеуказанных задач одинаковым, в результате появляется одно единственное уведомление под названием « IzzyTasker » с соответствующим сообщением, используемым вместо этого.

Это должно выиграть приз за самый вдумчивый, полезный и подробный ответ.
Спасибо! У меня ушло около недели, чтобы собрать всю статистику, протестировать все решения, плюс отделить хорошие от, хм, не очень ;)
Хе-хе -- спасибо @t0mm13b за обновление. Подсказка: Текущее состояние всегда является «последним» (ниже остальных). Таким образом, с разными заголовками вы получаете небольшой «лог». Но интересное открытие: заголовок — это то, что заставляет уведомление заменяться — спасибо за это!
Это происходит даже при хорошем приеме, но не из-за проблем с приемом.
Отличное исследование, спасибо, что поделились! Я настраиваю профиль ламы, аналогичный вашей настройке Tasker. Знаете ли вы, что было бы хорошим пороговым значением для слабого сигнала и его отсутствия? Afaik -113 дБм считается отсутствием сигнала, но как насчет слабого сигнала?
Поскольку Tasker не работает со значениями dbm напрямую, я не стал вникать в них очень глубоко. Вы можете некоторое время понаблюдать за ним (или контролировать его, например, с помощью RF Signal Tracker ), чтобы найти подходящие значения. Из моего мониторинга с помощью этого приложения я согласен на -113 дБм, что означает «вне», тогда никакого полезного сигнала. Таким образом, вы можете начать с -110=SigLost, -100=SigLow, better=OK — и оттуда играть со значениями, пока не будете удовлетворены. Тогда я был бы признателен, если бы прочитал ваши результаты (значения) здесь :)
Магическое значение кажется -105dbm. Все, что выше, представлено двумя полосами уровня сигнала, -105 дБм, а все, что ниже, представляет собой одну полосу или меньше. Это относится и к Samsung Galaxy S2 i9100.
Я не понимаю: «При плохом приеме устройство тратит много энергии, чтобы найти лучший / более сильный сигнал (или вообще любой сигнал, если он потерян)». Как он использует энергию для поиска лучшего сигнала? Я могу себе представить, что он сканирует частоты, прислушиваясь к сильным, но если он не передает, я не понимаю, как это требует гораздо больше энергии, чем сидеть на одной частоте и слушать. Если он передает... почему? Это чтобы получить рукопожатие? Не было бы лучше, если бы мачты очень часто передавали сердечные сокращения, чтобы телефоны могли сразу определить, есть ли у них хороший сигнал от мачты?
@ Полди, приемник требует энергии. Если он уже находится на хорошем соединении, ему не нужно проверять наличие других. Если это необходимо, он должен проверить, можно ли использовать «другую ячейку», может ли она «заблокировать» другую башню (или получить отказ, поскольку она, например, принадлежит другому оператору связи). Для этого он также должен передавать, конечно. Возможно, ему также потребуется сканировать дополнительные частоты (2G/3G/LTE, каждый с разными диапазонами), а не просто придерживаться той, к которой он подключен. На подробное технологическое описание этой самостоятельной части Android ответить не могу (я не инженер).
Это все еще актуально для Lollipop?
@wizlog Lollipop не устанавливался на вышки сотовой связи и не менял протоколы GSM/UMTS/LTE, так что я полагаю, что тема остается актуальной. У меня здесь нет устройства LP (и нет соответствующей тестовой среды или времени для запуска такого теста), чтобы увидеть, справляется ли LP с этим более эффективно, но оно, конечно, ничего не может сделать для качества сигнала (только реагировать на него).
Ссылка @Izzy AutoPilot и ShutUpBatterySaver кажется мертвой.
@Firelord И что? Этому ответу 3 года. Там достаточно других указателей :)
Приложения, предложенные в ответе, больше не существуют.
@Pandya посмотри на дату. И будьте добры быть более точными (например, упоминание каких именно). Хотя замены может и не быть – а мне некогда их искать.