Тестирование использования батареи

Я хочу проверить, как мое приложение влияет на батарею телефона/планшета.

Существуют ли какие-либо инструменты для тестирования, которые позволят мне это сделать?

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

Ответ 1

На практике я считаю, что большинство приложений, которые имеют проблемы с питанием, также имеют проблемы с процессором. То есть, профиль использования вашего приложения, вероятно, является хорошим приближением к потреблению вашего аккумулятора. Есть предостережения и исключения, если, например, ваше приложение делает что-то дорогое с графическим процессором, беспроводной сетью, хранилищем и т.д., И что дорогостоящая операция не требует большого времени процессора.

Здесь интересный блог о приложении "Power Tutor", который обеспечивает более точное измерение в работающей системе, чем встроенное приложение для батарей: http://gigaom.com/mobile/android-power-consumption-app/. Я не пробовал.

Для другого уровня детализации, вот документ, который разбивает, какие компоненты телефона сосут наибольший сок (обратите внимание, что бумага с 2010 года): http://www.usenix.org/event/usenix10/tech/full_papers/Carroll.pdf (Просто перейдите к разделу 5, чтобы прочитать их результаты). Они говорят, что яркость экрана является самым большим виновником.

Если яркость экрана является самым большим виновником, обязательно установите ее на фиксированный уровень, если вы измеряете собственное использование приложения.

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

Ответ 2

Появился новый инструмент, который поставляется с Android 5.0.

Вы можете запустить

adb shell dumpsys batterystats > dump.txt

Чтобы получить полную резервную батарею вашего устройства. Вы также можете добавить некоторые параметры, такие как --unplugged (только выходные данные с момента последнего отсоединения) или --charged (только выходные данные с момента последнего заряда). Вы также можете добавить имя пакета, чтобы получать информацию только для этого пакета/приложения:

adb shell dumpsys batterystats --unplugged your.package.name > dump.txt

Часть > dump.txt помещает все в файл (возможно, просто работает в Windows, но не уверен. Но вы можете просто оставить его, дамп будет напечатан прямо на консоли, где вы можете скопировать его и поместить в файл).

Это работает, только если у вас есть устройство с Android 5.x. Если у вас есть устройство с более низким уровнем, вы можете попытаться использовать

adb shell bugreport > bugreport.txt

Но этот файл будет очень большим. (~ 8MB +)

После создания этого файла вы можете использовать Historian Tool для Google

Чтобы использовать его, вы должны установить Python 2.7.9 и выполнить следующую команду

python /path/to/historian.py dump.txt > battery.html

Это создаст файл battery.html, в котором вы сможете увидеть данные в более удобном форматировании.

Последняя вещь: Если вы хотите reset, статистика дампа батареи просто вызывает

adb shell dumpsys batterystats --reset

(просто работает с Android 5.x)

Ответ 3

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

eprof - это один инструмент, разработанный некоторыми университетскими градациями.

вы можете найти несколько статей по этой теме: http://web.ics.purdue.edu/~pathaka/pubs.html

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

Ответ 4

Как и для Android 2.3.3, система имеет собственный монитор батареи.

Настройки → О телефоне → Использование аккумулятора

Ответ 5

Я бы сказал, что нет реального инструмента для его тестирования, поскольку он не может быть точно определен. Если вы возьмете iPhone, вы увидите, что количество батареек будет идти от 40% до 30%, а затем оставайтесь там на некоторое время, опускайтесь до 20%, снижайтесь до 15%, доходите до 25%, возвращайтесь к 20% ECT, Что вы можете сделать, это зарядить телефон в течение длительного периода времени, чтобы убедиться, что он полностью заряжен, а затем используйте ваше приложение, пока телефон не закроется, и не запомните количество времени, которое потребовалось. Теперь сделайте это с другой версией и посмотрите результат. В основном вам придется играть в игру MasterMind, если вы хотите сделать меньше тестов, насколько это возможно. Кроме того, если изменение не так просто, это, вероятно, не очень важно.

Ответ 6

Мы провели аналогичное тестирование, чтобы узнать, как мое приложение отвечает за потребление батареи телефона Nexus5.

Но, к сожалению, мы не смогли получить помощь от какого-либо инструмента, но в основном это было основано на ручном тестировании.

Мы определили некоторые модули в приложении, которые были заподозрены в увеличении потребления аккумулятора.

  • Модуль информирования о местоположении, в котором используется GPS.

  • Модуль загрузки, использующий сетевое соединение, запускает фоновый режим в течение длительного времени.

  • Модуль создания видео, который также загружает CPU из-за фоновой работы. и так далее...

Наконец, после 3-4 раунда тестирования у нас была определенная тенденция в данных, и мы смогли идентифицировать модуль, который был большим виновником потребления батареи.

В основном будет больше потребления батареи, если что-то удержит процессор больше времени. Таким образом, мы можем думать о модуле, который имеет фоновые операции, связанные с сетью операции.

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

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