Wakelock Notifier

Прошивки и их моды\ Кухни\ Игры и приложения\ Различные настройки\ Различные вопросы по ОС Android и WM и т.п.

Модераторы: Lunat, pvsurkov, AlexG1, KSAT

Wakelock Notifier

Сообщение Ответ:#1 » michфуд » 20 мар 2013, 14:02


WAKELOCK NOTIFIER



В свете того, что качество нашего мозга постоянно улучшается в плане познания андроидных закидонов, не так давно я узнал что такое wakelock.
Это процесс, который имеет 2 состояния - вкл/выкл - он может быть вызван любой программой или ядром с помощью aquire и release методов.
Эти wakelock`и напрямую связаны с режимом deepsleep - т.е. прграмма запросившая wackelock - выводит тело из спяки, делает свою работу, и ДОЛЖНО послать запрос на снятие wakelock - чтобы тело могло спать дальше. Но иногда по тем или иным причинам этого не происходит, и тело остается с выключенным экраном, но с работающим процессором.
Несомненно, это разряжает батарею быстрее. Вопрос насколько? Могу примерно ответить так - все зависит от...
Конкретно на моем телефоне G3 MTK 6577 условно за ночь с висящим wakelock уходит 8-15% заряда, при этом CPU работает на частоте 1000мгц. С deepsleep - около 6%.
Даже если программа снимает wakelock - всегда интересно сколько времени та или иная программа пользовалась девайсом и зачем ей это надо.
Т.е. по моему мнению отказываться от viber, почты, погоды и т.д. и т.п. на современном девайсе нет смысла, но понимать сколько они отъедают времени и зачем будят телефон мне хочется. (в качестве примера - известная безобидная игра "cut the rope" или swype например - зачем-то постоянно лазят в сеть с определенной периодичностью. если swype я поднастроил и он перестал это делать, то игру убедить в этом я не смог).

Далее еще немного про wackelock - я разделил их на 3 типа:
1. kernel - на своем телефоне я их не могу обнаружить пока, но они есть - это баги ядра/железа, к ним относятся залипания проца при зарядке и загорании красного LED и типа того (charger wackelock, leds wakelock и т.п.)
2. system - то, что вызвано системными процессами - например поддержание работы wifi, телефона, фреймворком прошивки и встроенным системным софтом и т.п.
3. soft - чисто из установленного софта.

вот 1е - у меня не детектируется, 2е - детектируется, но почти не возможно исправить, 3е - детектируется и может быть исправлено, удалено.

Для наблюдений за телефоном нужны следующие программы:
- CpuSpy - проверять наличие deepsleep
- WakelockDetector - смотреть кто будит тело и статистику по wakelock
- CoolTool - смотреть не залипает ли частота на 1001мгц

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

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

То же самое можно сделать запустив команду "adb shell dumpsys power" (это и делает программа).

Т.е. в настройках мы задаем два параметра - как часто проверять (от 1 минуты до 1 часа - моя программа тоже использует wakelock - т.е. будит тело, работает, отключается - она может стать лидером в статистике :-) ), и что считать вредной продолжительностью - активность свыше 1-10минут. Если в момент проверки у какого-то wakelock время активности выше заданного - приходит уведомление, звук и мигающий синий ( :-) ) диод.
Для проверки работы программы - есть кнопочка test - которая вешает постоянный partial wakelock с названием Wakelock_notifier_TEST.
И если программа активна - она определит сама свой-же wakelock и выдаст предупреждение.
А дальше юзер должен сам решить как ему жить с таким wakelockom - ребутнуть тело или еще что-то.

Пример: за время тестирования найден "злой" wakelock под именем Audioout_2 которы минутами морозит тело. Что это я пока не понял, но понял что он может включаться при блокировке экрана (я его по логам отследил - раз десять on_off screen делал) - он всегда включался. А выключал я его кнопками громкости. Но ведь если бы я его не засек - он бы мог висеть например всю ночь и т.д.

В общем пробуйте, как всегда тестируйте, докладывайте... думаю что актуально для версий андроида от 4.0 - хотя кто его знает... ;;-)))
Вложения
WakeLockNotifier_2.0.rar
(177.72 КБ) Скачиваний: 224
Последний раз редактировалось michфуд 10 апр 2013, 20:09, всего редактировалось 1 раз.
  • 20

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#2 » <WERT> » 20 мар 2013, 15:43

Эти wakelock`и напрямую связаны с режимом deepsleep - т.е. прграмма запросившая wackelock - выводит тело из спяки, делает свою работу, и ДОЛЖНО послать запрос на снятие wakelock - чтобы тело могло спать дальше. Но иногда по тем или иным причинам этого не происходит, и тело остается с выключенным экраном, но с работающим процессором.

По результатам за ночь - wakelock detector показал около часа работы системных вейклоков (и это примерно соответствует доли "работы" в батарее, которая в настройках), главный из которых AlarmManager (он ещё у многих приложений есть, и обычно именно его результаты соответствуют общим). При этом в CpuSpy работа процессора - только 3-4 минуты, остальное DeepSleep
Audioout_2

М.б. динамик?
  • 0

Аватара пользователя
<WERT>
Новичок
 
Сообщения: 7
Зарегистрирован: 03 янв 2013, 15:27
Репутация: 0

Wakelock Notifier

Сообщение Ответ:#3 » michфуд » 20 мар 2013, 15:46

в описании wakelock detector указано (или betterbatstats - не помню уж) что время wakelockov может накладываться друг на друга в реалии, а программой суммироваться, т.е. если в одно время на одну минуту проснулось 10 вейклоков и 10 программ - думаю, что может показать 10мин вейклоков, но время работы проца - 1 мин... пока теория :nez-nayu:

Добавлено спустя 1 минуту 14 секунд:
<WERT> писал(а) on 20 мар 2013, 15:43:М.б. динамик?

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

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#4 » back37 » 20 мар 2013, 16:42

Забавно но факт - поставил твою прогу, мой флай спать нормально начал :-)
До этого пока диспетчер загрузок не убью, спать не хочет, тут поставил прогу, ничего не выводит но девайс спит :ps_ih:
Толи я чегото не понял толи что :ps_ih:
MTK FirmwareAdapter Tool | Newman N1 FullRusReborn и другие | Куча прошивок для Fly IQ446

Siemens C75 - Siemens S75 - Ginza ms100 - Asus P750 - Star A5000 - Hero H7300 - Star B79 - freelander i10 - Fly IQ446 (Gionee GN708W) - Sony Xperia ZL
Планшет: Asus T100TA 64Gb
  • 0

Аватара пользователя
back37

Разработчик
 
Сообщения: 2301
Зарегистрирован: 28 авг 2011, 14:56
Откуда: Zаводоуковск/Tюменb
Репутация: 1448

Wakelock Notifier

Сообщение Ответ:#5 » <WERT> » 20 мар 2013, 17:19

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

Я пощёлкал - работает только при подаче звука на динамик. Думаю, ничего страшного он из себя не представляет..

upd: ещё в играх активен
  • 0

Аватара пользователя
<WERT>
Новичок
 
Сообщения: 7
Зарегистрирован: 03 янв 2013, 15:27
Репутация: 0

Wakelock Notifier

Сообщение Ответ:#6 » michфуд » 20 мар 2013, 17:55

<WERT>, ну как... конечно не опасен, просто когда он висит не давая уйти в дипслип... а в остальном, да - хороший процесс )))
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#7 » <WERT> » 20 мар 2013, 18:30

michфуд, да не должен висеть вроде.. Или дело не в нём, а в программе, которая его вызывает

Если CpuSpy и Wakelock Detector не врут, то несколько активностей (по крайней мере AlarmManager) работают в дипслипе, а может быть только в дипслипе. А это значит, что либо процессор не совсем спит, а работает на пониженных частотах, либо помимо ЦП есть ещё обрабатывающая железячка. Или я чего-то не понимаю :du_ma_et:
  • 0

Аватара пользователя
<WERT>
Новичок
 
Сообщения: 7
Зарегистрирован: 03 янв 2013, 15:27
Репутация: 0

Wakelock Notifier

Сообщение Ответ:#8 » michфуд » 20 мар 2013, 18:43

<WERT>,
<WERT> писал(а) on 20 мар 2013, 18:30:работают в дипслипе
- так не бывает. в дипслипе никто не работает. как только есть работа для проца - нет диплсипа. насчет частоты точно не скажу, но думаю здесь опять влияет kernel - т.к. у меня всегда показывает что выход из ДС происходит на 1001мгц и проги по быстрому вершат свои дела, потом снова сон - вне зависимости от режима governor и пр.
но это м.б. только на моем G3 - у других может быть по другому
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#9 » savyol » 20 мар 2013, 19:23

michфуд, Блин, у меня опять всё ни как у людей :-( Что-то молчит твоя прога, даже в тесте.
 Мои смартфоны
0610 0818
  • 0

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

Wakelock Notifier

Сообщение Ответ:#10 » michфуд » 20 мар 2013, 19:28

savyol, потыкай в кнопки, ребутнись... есть там нюансы в коде - я их как бы сам пока не до конца понимаю.. ну пробовать надо как еще :nez-nayu:
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#11 » savyol » 20 мар 2013, 19:29

michфуд, да всё уже попробовал.
 Мои смартфоны
0610 0818
  • 0

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993


Wakelock Notifier

Сообщение Ответ:#13 » savyol » 20 мар 2013, 19:33

michфуд писал(а) on 20 мар 2013, 19:32:superusera давал

ага.

Добавлено спустя 1 минуту 18 секунд:
а откуда прога берёт данные, не с логов случаем?
 Мои смартфоны
0610 0818
  • 0

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

Wakelock Notifier

Сообщение Ответ:#14 » michфуд » 20 мар 2013, 19:46

savyol,
То же самое можно сделать запустив команду "adb shell dumpsys power" (это и делает программа).

ну ясен пень что без адб
просто
dumpsys power | grep WAKE > " + getFilesDir() + "/active_wakelocks\n
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#15 » savyol » 20 мар 2013, 19:54

michфуд,
 dumpsys power
 Мои смартфоны
0610 0818
  • 1

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993


Wakelock Notifier

Сообщение Ответ:#17 » savyol » 20 мар 2013, 20:00

michфуд, Да в том то и дело, что спит суцко и хрен разбудишь, а хочу как у всех ;;-)))
 Мои смартфоны
0610 0818
  • 0

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

Wakelock Notifier

Сообщение Ответ:#18 » michфуд » 20 мар 2013, 20:03

не гони.
либо у тебя с рутом проблемы и su не выдал разрешение


ps - хотя че это я пишу... нет у тебя теперь дипслипа - сбрось все таймеры и наблюдай, висит у тебя тестовый вейклок.
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Wakelock Notifier

Сообщение Ответ:#19 » savyol » 20 мар 2013, 20:08

michфуд,
Так-то да, стоит раз в минуту и сообщает что права супер зверя дал,какой тут сон ;;-))) щас-то не спит. Больше интересует почему прога мне ничего не говорит.
 Мои смартфоны
0610 0818
  • 0

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

Wakelock Notifier

Сообщение Ответ:#20 » michфуд » 20 мар 2013, 20:19

а она не ловит kernel wackelock`и и не спит у тебя из-за диода или зарядки я думаю. примерно так. а может еще че ))))

Добавлено спустя 1 минуту 24 секунды:
сделай ка еще раз dumpsys
  • 0

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

След.

Вернуться в Программная часть КПК

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

x

#{title}

#{text}