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

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

Есть ли инструменты для тестирования, которые позволят мне это сделать?

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

Solutions Collecting From Web of "Тестирование использования батареи"

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

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

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

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

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

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

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

adb shell dumpsys batterystats > dump.txt 

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

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

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

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

 adb shell bugreport > bugreport.txt 

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

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

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

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

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

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

 adb shell dumpsys batterystats --reset 

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

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

Eprof – один из инструментов, разработанных некоторыми университетскими градациями.

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

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

Начиная с Android 2.3.3 система имеет собственный монитор батареи.

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

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

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

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

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

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

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

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

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

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

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

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