AccuBattery отображает информацию об использовании батареи, и измеряет емкость батареи (мА/ч), основываясь на научных методах.
❤ СРОК СЛУЖБЫ БАТАРЕИ
У всех батарей ограниченный срок службы. Каждый раз, когда вы заряжаете свое устройство, батарея изнашивается, соответственно уменьшается ее общая емкость.
— Используйте наше оповещение о заряде, чтобы не забыть отключить зарядное устройство.
— Узнайте уровень износа батареи причиненного в процессе последней зарядки.
ИСПОЛЬЗОВАНИЕ БАТАРЕИ
AccuBattery замеряет фактический уровень использования батареи, используя информацию, полученную от контроллера заряда батареи. Уровень использования батареи отдельным приложением определяется совмещением этих измерений с информацией о том, какое приложение было активно. Android рассчитывает уровень использования батареи, используя предустановленные профили, предоставленные производителем данного устройства, которые основаны на информации о потреблении энергии процессором. Тем не менее, на практике точность этих цифр крайне низка.
ПОЧЕМУ БЫСТРО САДИТСЯ ТЕЛЕФОН, КАК ПРОДЛИТЬ ЗАРЯД БАТАРЕИ НА АНДРОИДЕ
— Следите за тем, сколько заряда батареи использует ваше устройство
— Узнайте, как долго вы можете использовать ваше устройство в активном режиме и в режиме ожидания
— Выясните, сколько энергии потребляет каждое приложение.
— Проверьте, как часто прерывается “глубокий сон” вашего устройства.
СКОРОСТЬ ЗАРЯДА
Используйте AccuBattery, чтобы найти самый быстрый зарядник и подходящий вашему устройству USB кабель. Для этого измерьте ток заряда (в мА)!
— Проверьте, насколько быстро ваше устройство заряжается с включенным или выключенным экраном.
— Узнайте сколько времени необходимо для зарядки вашего телефона, и когда зарядка завершится.
ОСНОВНЫЕ ФУНКЦИИ
— Замерьте реальную емкость батареи (в мА/ч).
— Посмотрите, какому уровню износа подвергается ваша батарея в процессе каждой зарядки.
— Узнайте скорость разряда и потребление заряда отдельным приложением.
— Оставшееся время зарядки — узнайте, сколько времени займет зарядка батареи.
— Оставшееся время использования — узнайте, когда ваша батарея разрядится.
— Расчеты с учетом того, выключен экран, или включен.
— Узнайте время “глубокого сна”, в процентном соотношении в режиме ожидания.
— Постоянные уведомления для получения статистики использования батареи в режиме реального времени.
ОСОБЕННОСТИ ВЕРСИИ PRO
— Используйте Темную и черную AMOLED темы для экономии энергии.
— Получите доступ к истории сессий, которые старше одного дня.
— Детализированная статистика использования батареи в уведомлениях.
— Нет рекламы
Как получить расширенную статистику батареи Android телефона
За последние несколько лет время автономной работы Android и инструменты для мониторинга использования стали лучше, но опций по-прежнему иногда не хватает. Но есть способы измерить заряд батареи, оставшееся время и даже найти приложения, которые крадут драгоценный заряд.
СМЕЛО ОТКЛЮЧАЙ ЭТИ НАСТРОЙКИ В СВОЕМ ТЕЛЕФОНЕ | ЭКОНОМИЯ БАТАРЕИ АНДРОИД
Прежде чем мы углубимся в детали, давайте поговорим об одной вещи, которую Вы не должны делать со своей батареей. Мы все видели эти ужасные «оптимизационные» приложения, которые обещают улучшить время автономной работы, но Вы должны держаться подальше от них. По сути, они работают по старому, думая, что фоновые приложения разряжают Вашу батарею, поэтому они просто убивают их. Это действительно ужасная идея, потому что эти приложения — просто убийцы задач. И вряд ли Вам нужно использовать убийцу задач на Android.
Теперь, давайте углубимся в то, как понять, что происходит с Вашей батареей, и что Вы можете с этим сделать, если что-то идет не так.
Проверьте активные частоты CPU
Simple System Monitor — одно из удобных приложений для мониторинга системы Android.
Разработчик: Darshan Parajuli
Цена: Бесплатно
Хотя он может делать много разных вещей, сегодня мы сосредоточимся только на одном: следим за частотами процессора. Он отслеживает наиболее часто используемые частотные состояния процессора и показывает, сколько времени процессор проводит в каждом состоянии.
Например, если Ваш телефон лежал на столе в течение четырех часов с очень небольшим использованием, то частое состояние процессора должно быть «Deep Sleep», что означает, что все работает так, как должно быть — нет приложений, активно использующих процессор и разряжающих батарею. Но если Вы играли в игру в течение последнего часа, верхнее состояние может быть примерно 1,5 ГГц, потому что игра увеличила нагрузку на процессор.
Знание того, что процессор делает в фоновом режиме, может дать Вам понимание того, что происходит с Вашей батареей. Если Вы не пользовались своим телефоном, а верхний процесс — это не «Deep Sleep», тогда что-то происходит в фоновом режиме, и Вам нужно выяснить что.
Хорошая новость заключается в том, что Simple System Monitor также может помочь в этом (хотя есть лучшие приложения для этого, и мы обсудим их позже). Переключитесь на вкладку «App usage», которая показывает, какие приложения наиболее активны в режиме реального времени.
Предвидеть оставшееся время и находить проблемные приложения с AccuBattery
Хотя Android делает все возможное, чтобы оценить, сколько осталось заряда батареи, это число может сильно варьироваться в зависимости от того, что Вы делаете. Вот где приложение под названием AccuBattery делает это лучше.
Разработчик: Digibites
Цена: Бесплатно
AccuBattery предлагает быструю, подробную информацию о Вашей батарее в удобном уведомлении, которое включает текущее оставшееся время (предполагаемое, конечно), скорость разряда и сколько заряда батареи (в мАч) при выключенном и включенном экране.
Но полезность AccuBattery не заканчивается простым виджетом. Его страница «Разрядка» полна полезной информации, когда речь заходит о том, где расходуется заряд батареи. Страница разделена на различные подразделы, где Вы найдете конкретную информацию, например:
- Использование батареи: время работы экрана и мАч; время выключенного экрана и мАч; использование приложениями в мАч; время глубокого сна, включая процент времени при выключенном экране
- Скорость разряда: скорость разряда при включенном экране (ежечасно); скорость разряда при выключенном экране (почасово); комплексное использование; и текущий расход батареи в мАч
- Использование батареи приложениями: определите, какие приложения используют больше всего батареи
- Использование батареи в среднем: экран включен, экран включен и сведения о комплексном использовании с течением времени
- Время работы от полной батареи: как долго будет работать Ваша батарея при полной зарядке для включенного экрана, выключенного экрана и комплексного использования
Это исключительно простой способ определить время работы от батареи с помощью различных показателей (в процентах и мАч), чтобы облегчить чтение и понимание. Кроме того, Вы можете увидеть, какие приложения используют больше всего батареи, хотя здесь Вам придется использовать немного дедуктивных рассуждений. Если приложение, которое Вы используете чаще всего, находится сверху, это, вероятно, правильно. Но если вверху приложение, которое Вы редко используете, это проблема, которую Вам нужно изучить далее.
Помимо подробностей разряда батареи, Вы также можете узнать больше информации о состоянии вашего аккумулятора. Хотя у нас есть полное руководство, в котором описано, как использовать AccuBattery для определения уровня заряда батареи Вашего устройства, вот суть. Чем дольше Вы используете свой телефон с установленным AccuBattery, тем точнее он становится. Чтобы определить статистику состояния, требуется время, поэтому после установки приложения просто пользуйтесь телефоном, как обычно. AccuBattery работает в фоновом режиме, вычисляя текущие скорости заряда и разряда, а также износ батареи, емкость и общее состояние.
Получите еще больше информации на устройстве с root доступом
Оба приложения, о которых мы говорили до сих пор, являются отличными инструментами сами по себе, но оба они также предлагают более продвинутые функции на устройствах с root доступом. Такие инструменты, как GSam Battery Monitor, могут предоставить более подробные сведения об использовании, такие как использование wakelock и датчика.
Источник: android-example.ru
Профилирование Android-приложений на потребление аккумулятора
Думаю, что у каждого пользователя Android рано или поздно возникает необходимость понять, какое приложение за ночь съело всю батарею притом, что телефон лежал с погашенным экраном. Участь найденного виновника не завидна: чаще всего его просто удаляют. Итак, что же сделать, чтобы наши приложения использовали аккумулятор минимально? В статье я постараюсь дать ответ на этот вопрос и рассказать о подходах к уменьшению потребления аккумулятора, которые мне доводилось использовать.
Количественная оценка
Прежде всего, давайте договоримся, как будем измерять потребление батареи, чтобы наблюдать за прогрессом после тех или иных исправлений в коде. Все, что нам доступно, — это процент заряда батареи. На него и будем ориентироваться. Эта величина меняется в зависимости от очень многих факторов.
- использовать одно и то же устройство;
- использовать одну и ту же часть шкалы (дело в том, что изменение на один процент заряда на разных частях шкалы означает изменение на разный заряд, например, от 100% до 99% обычно разряжается быстрее, чем от 90% до 89%);
- перед началом серии тестов на батарею на устройстве желательно сделать factory reset;
- перед каждым тестом перезагружать устройство;
- во время одного теста разряжать устройство более чем на 10%, чтобы погрешность измерения была не очень велика;
- не ставить и не запускать никаких новых приложений во время серии тестов, они в фоне могут потреблять батарею;
- не менять настройки устройства: яркость экрана, настройки сети и т.д.;
- не перемещать устройство на существенные расстояния (более нескольких метров) во время теста или при каждом тесте перемещать его по одной и той же траектории.
На что же уходит батарея?
- работа CPU;
- подсветка экрана;
- работа GPU;
- работа с сетью;
- частые получения GPS-координат.
- CPU часто главный потребитель;
- на подсветку экрана часто уходит не меньше, чем CPU;
Очень важно не менять яркость подсветки во время сравнительных тестов. Иначе это может исказить результат. Например, когда я замерял, как влияет изменение яркости на потребление батареи на Nexus 5, который прослужил более года, то получил такой результат: изменение яркости экрана с 20% до 80% увеличило потребление батареи на 15% в час. - потребление на работу сети может существенно возрасти, если телефон движется и если плохой сотовый сигнал;
Это связано с затратами на поиск сотовых точек. Как и в случае с яркостью экрана, надо учитывать, что это может повлиять на результаты тестов. - эффект от потребления на получение GPS-координат часто усиливается тем, что при обновлении координаты вызывается callback, в котором исполняется определенный объем кода.
- Прежде всего это уменьшение нагрузки на CPU. Это главный способ уменьшить расход батареи. Имеет смысл спрофилировать приложение на использование CPU. Если возможно, перенести часть нагрузки на GPU. Это может дать существенный вклад.
- Затем сеть. Данные имеет смысл буферизировать, чтоб реже обращаться по сети. Здесь подробно описано, как уменьшить потребление батареи при передачи данных по сети.
- Далее GPS. Если не требуется точная, часто обновляемая координата не запрашивайте её. Стоит рассмотреть возможность определения координаты по WiFi. Здесь хорошо написано про это.
Профилирование потребления батареи
- Android-устройство с OS 5.x и достаточно новым аккумулятором. Если это возможно, ему лучше сделать factory reset.
- Профилировщик: github.com/google/battery-historian. Его нужно установить на десктоп и опробовать до тестов.
- Полностью заряжаем батарею. Это важно, чтобы потом была возможность сравнивать результаты экспериментов между собой на одной и той же части шкалы батареи.
- Устанавливаем на устройство тестируемое приложение.
- Перезагружаем устройство. Это нужно, т.к. иначе другие приложения, запущенные в фоне, могут повлиять на результат.
- Сбрасываем статистику батареи: adb shell dumpsys batterystats —reset
- Можно также включить статистику по wakelock. По умолчанию она выключена: adb shell dumpsys batterystats —enable full-wake-history
- Не забываем отключить девайс от компьютера, чтобы не заряжался.
- Затем, запускаем тестируемое приложение.
- И откладываем устройство на несколько часов, так чтобы оно разрядилось как минимум на 10-15%. Во время теста желательно не трогать устройство и не включать ему экран, поскольку это может повлиять на результат.
- Изучаем данные за время теста.
1. Профилировщик battery-historian
Прежде всего, профилировщик показывает разные UI для Android 5.x и для более ранних версий ОС. Притом, количество, полнота данных и удобство отображения заметно отличаются в пользу Android 5. С другой стороны, результаты профилирования приложения на батарею могут заметно отличаться, если запускать его на разных версиях Android. Я рекомендую начинать профилирование с Android 5, а затем обязательно повторить процесс на более ранних версиях ОС.
2. UI в настройках Android
Тут все просто. На телефоне заходим в Настройки -> Батарея. Проценты означают, сколько процентов батареи потрачено на каждое приложение. За 100% принимается все, что было потрачено за время теста.
Например, экран выше показывает, что статистика собрана примерно с 22 вечера до 7:30 утра. За это время устройство разрядилось на 72% (100% — 28%). 14% от того, на что разрядилось (т.е. от 72%) ушло на экран. 12% на MAPS.ME. Если клинуть на пункт в этом списке, то можно получить детальную информацию о расходе для выбранного приложения.
На этом экране также видно, что потребление резко возросло с 6 до 7 часов. Нередко бывает, что приложение активно использует Службы Google, и расход заряда списывается на них. Это также видно на скриншоте выше. Этот диалог позволяет быстро понять, что происходит с приложением на фоне остальных приложений и сервисов, запущенных системой. А в случае Android 4.x и более ранних он дает данные, которые не получить при помощи профилировщика.
Работа с профилировщиком battery-historian
- установку go: golang.org/doc/install
Если вы установите go, как предложено по умолчанию, в директорию $HOME/go, то достаточно задать следующие переменные окружения, после установки:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin - установку protobuf;
- установку профилировщика battery-historian.
adb bugreport > bugreport.txt
cd $GOPATH/src/github.com/google/battery-historian go run cmd/battery-historian/battery-historian.go
В открывшемся окне выбираем ранее сохраненный файл bugreport.txt.
Результаты, которые вы увидите в браузере, будут зависеть от версии Android, с которой был загружен bugreport.txt. Для Android 5.x отображается страница с рядом вкладок и самой разнообразной информацией, включая статистику по каждому приложению системы. Общая статистика расхода батареи на устройстве:
Статистика по приложениям:
Для Android 4.x получим вот такой диалог. Он существенно менее информативен, но по нему можно понять, что происходит с потреблением в целом.
Режимы профилирования приложения
- приложение на переднем плане;
- приложение в фоне.
Деградация аккумулятора
Важно учитывать, что со временем заряд аккумулятора слабеет. У меня был случай, когда за полгода приложение стало разряжать аккумулятор в полтора раза быстрее. Причина — старение батареи. Это стоит учитывать при тестах. Если приложение съедало всю батарею устройства за 4 часа работы полгода назад, то, скорее всего, сейчас оно будет съедать батарею за меньшее время.
И причина не в том, что в приложении что-то стало не так.
Сравнение с конкурентами
Хочу обратить внимание, что приведенные выше методики не требуют доступа к исходным кодам приложения. Это значит, что можно сравнить, как ваше приложение потребляет аккумулятор по сравнению с конкурентами.
Заключение
В этой статье я описал подходы по уменьшению потребления батареи, которые мы применяем при работе над MAPS.ME в Mail.Ru Group. Было бы интересно услышать, если кто-то использует какие-то другие средства и технологии для решения этой же задачи. Пишите в комментариях.
- Блог компании VK
- Клиентская оптимизация
- Разработка под Android
Источник: habr.com