Как заставить ебаный андроид не жрать батарею

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

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

Теория

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

Поэтому после нажатия кнопки выключения телефон отключает все это хозяйство. А чтобы телефон мог принимать звонки — оставляет включенным GSM-модуль. Энергопотребление в таком режиме падает в десятки раз.

Проблема в том, что мы, э-э, не всегда хотим, чтобы телефон засыпал после того, как мы нажимаем на кнопку выключения. Например, если мы слушаем музыку. Чтобы музыка играла — смартфону нужно читать mp3’шки, раскодировать их, в общем — продолжать работать. Экран, конечно, погаснет, и это снизит энергопотребление в пару раз, но если еще и система спать уйдет — музыка замолкнет.

Чтобы приложения могли блокировать засыпание — разработчики андроида изобрели wakelock’и. Wakelock — это такая блокировка на засыпание. Пока какое-то приложение удерживает эту блокировку — телефон заснуть не может.

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

Практика

Собирать статистику энергопотребления мы будем при помощи BetterBatteryStats. Оно бесплатное.

Как этой ерундой пользоваться — хрен разберешься. Вот инструкция.

Сперва идем в настройки и ставим там:

Теперь если что-нибудь будет будить андроид — у вас в трее вылезет сообщение. Если кликнуть по нему — откроется интерфейс BetterBatteryStats.

Сверху будет три строки с выбором.
Первая — это тип отображаемой статистики.
Вторая — это момент, от которого отображается статистика.
Третья — это момент, до которого отображается статистика.

Нам нужно поставить во второй строке Screen Off, а в третей — Screen On. Чтобы видеть только то, что происходило со спящим телефоном.

Статистика по-умолчанию — Other — это общая сводка. Если вы видите, что телефон пребывал долгое время в awake’а вместо того, чтобы спать — плохо дело. Чтобы выяснить, почему — нажмите на Other и выберите Partial Wakelocks. Там будут отображены приложения, которые блокировали уход телефона в спячку. Ну а дальше действуйте по ситуации.

Например

Например, можно узнать, что стандартный андроидовский плеер, если его поставить на паузу, не дает телефону заснуть. Кнопки «стоп» в нем, разумеется, нету. Кнопки «закрыть» тоже.

Или что фаерфокс со вкладками продолжает жрать батарею в свернутом состоянии. Закрыть его, понятное дело, невозможно — андроид умнее меня и сам решает, когда приложению закрываться, а когда — сворачиваться.

Всякое такое вы будете с интересом обнаруживать по пути. Удачи.

См. также