Потребление энергии — один из важнейших вопросов смартфонов. Android OS, популярная операционная система для смартфонов, имеет функцию, с помощью которой приложение может быть вызвано в выключенном состоянии без работы пользователя. Некоторые приложения часто работают в выключенном состоянии и потребляют батарею. В данной статье мы предлагаем метод идентификации приложений, которые в значительной степени разряжают батарею в состоянии Screen-off в Android-устройствах. Мы вводим стандартный метод Android для оценки энергопотребления каждого приложения и показываем, что он не всегда может правильно оценить потребление. Затем мы предлагаем метод идентификации приложений, сильно разряжающих батарею, путем мониторинга установки и вызова сигнализации, что является распространенным методом для выполнения приложения в состоянии Screen-off (отключения экрана). Результаты наших экспериментов показывают, что наш метод может идентифицировать приложения, разряжающие батарею, более корректно, чем стандартный метод операционной системы Android.
В операционной системе Android есть функция, с помощью которой приложение может быть вызвано в указанное время без вмешательства пользователя. С помощью этой функции приложения выполняются в выключенном состоянии и потребляют батарею. Естественно, ожидается, что для пользователей, чтобы понять поведение приложений в выключенном состоянии экрана не просто. Сообщается, что самый важный вопрос смартфоны — аккумулятор [1]. Таким образом, важным вопросом является обнаружение приложений, использующих дренажную систему.
В этой статье мы предлагаем метод идентификации приложений, которые в значительной степени разряжают батарею в состоянии Screen-off в устройствах Android. Во- первых, мы вводим стандартный метод оценки энергопотребления каждого приложения в Android и показываем, что он не всегда достаточно точен. Во-вторых, мы представляем зависимость между энергопотреблением в состоянии Screen-off и количеством вызовов по тревоге. Затем, мы предлагаем метод для идентификации приложений дренирования энергии, отслеживая вызов тревоги. В-третьих, мы оценили наш метод, применяя его в качестве практического устройства Android, и продемонстрировали, что он эффективно идентифицирует приложения, использующие дренаж батареи.
В операционной системе Android есть функция, с помощью которой приложение может быть вызвано в указанное время без вмешательства пользователя. С помощью этой функции приложения выполняются в выключенном состоянии и потребляют батарею. Естественно, ожидается, что пользователям будет нелегко понять поведение приложений в выключенном состоянии. Сообщается, что наиболее важной проблемой смартфонов является батарея [1]. Таким образом, важным вопросом является обнаружение приложений, потребляющих электроэнергию.
В данной статье мы предлагаем метод идентификации приложений, которые в значительной степени разряжают батарею в состоянии Screen-off в устройствах Android. Во-первых, мы вводим стандартный метод оценки энергопотребления каждого приложения в Android и показываем, что он не всегда достаточно точен. Во-вторых, мы представляем зависимость между энергопотреблением в состоянии Screen-off и количеством вызовов по тревоге. Затем, мы предлагаем метод для идентификации приложений дренирования энергии, отслеживая вызов тревоги. В-третьих, мы оценили наш метод, применяя его в качестве практического устройства Android, и продемонстрировали, что он эффективно идентифицирует приложения, использующие дренаж батареи.
Энергопотребление андроида
A. Оценка потребления батареи в Андроиде
Операционная система Android имеет функцию оценки расхода батареи каждым приложением. Она отслеживает использование различных устройств, таких как процессор и WiFi, по приложениям и оценивает потребление каждого приложения. Однако эта оценка не является полностью точной. Потребление энергии системными процессами, такими как ядро и сервис, потребляемое батареей каждым приложением. Он отслеживает использование различных устройств, таких как процессор и WiFi, по приложениям и оценивает потребление каждого приложения. Однако эта оценка не является полностью точной. Потребление энергии системными процессами, такими как ядро и сервисные процессы, предполагается, как и системные процессы, даже если сервис вызван приложением.
Таблица 1
Типы вызовов сигналов тревоги
RTC |
Указание даты по UTC |
RTC_WAKEUP |
RTC с пробуждением прибора |
ELAPSED_REALTIME |
Указание даты с указанием времени загрузки ОС |
ELAPSED_REALTIME _WAKEUP |
ELAPSED_REALTIME с пробуждением устройство |
Рис. 1. Количество сигналов тревоги и энергопотребление
B.AlarmManager
Android OS имеет функцию под названием AlarmManager, которая запускает приложение в указанное время, независимо от состояния устройства, бодрствования или сна. В AlarmManager есть три метода установки будильника: set(), setRepeating() и setExact(). Метод set() не гарантирует вызова в точное время. То есть операционная система может задержать вызов. Метод SetRepeating() используется для итерации вызовов. Метод SetExact() также не гарантирует вызов в точное время. SetExact() гарантирует вызов в точное время. Четыре способа указания времени приведены в таблице 1. В этой работе мы отслеживали сигналы тревоги с помощью RTC_WAKEUP и ELAPSED_REALTIME_WAKEUP.
Если устройство находится в спящем режиме в указанное время, эта функция будит устройство и выполнит приложение [2]. Например, новостное приложение может периодически обновлять информацию с помощью этой функции. Можно ожидать, что приложение с частыми сигналами тревоги может быть приложением, разряжающим батарею. Тем не менее, потребляемая мощность предполагается, так как системный сервер, то идентификация приложения, разряжающего батарею, не может быть достигнута с помощью стандартного метода Android.
Предложенная методика
A.Определение приложений для разрядки аккумуляторов
В этом разделе мы предлагаем метод идентификации приложений, которые сильно разряжают батарею в состоянии экрана, отслеживая вызов аварийной сигнализации. Мы предполагаем, что количество обращений к AlarmManager
B.Осуществление
Мы модифицировали ОС Android для записи вызова сигнализации. Функцию мониторинга мы вставили в метод deliverAlarmsLocked() во фреймворках/базе/сервисах/ядре/жаве/коме/и роудере/сервере/AlarmManagerService.java. Функция записывает время вызова тревоги и имя приложения. Эти данные хранятся в текстовом файле в файле /data/data/.
Оценка
Мы оценили применение метода разрядки батарей с помощью предложенного метода и оценили метод. Экспериментальная установка и используемые приложения представлены ниже. 26 января 2014 года мы установили приложения в топ-50 рейтинга Google Play Store [3] категории «Виджет». Восемь приложений из 50 не поддерживают экспериментальное устройство, поэтому было установлено 42 приложения. Мы контролировали срабатывание сигнализации и переход остатка аккумулятора в течение 24 часов. Устройство было настроено на переход в состояние «экран-выключение» через 1 минуту после последней операции. Использованное устройство — Nexus 7 (2013). Его характеристики следующие: процессор Qualcomm Snapdragon S4 Pro 1.5GHz, память 2GB, операционная система Android 5.0.1 с нашей модификацией. Результаты мониторинга представлены на рис. 1. На рисунке показано, что приложение X вызывало сигнал тревоги наиболее часто, и наш метод выбрал приложение в качестве приложения с наибольшим разрядом батареи. Стандартный метод ОС Android, функция доступна Настройки -> батарея, показал, что аппликатон X как приложение с наибольшим разрядом батареи.
Мы деинсталлировали эти приложения и измерили энергопотребление. Результаты показаны на рисунке 1. «AlarmManager» показывает количество вызовов тревоги приложениями за 24 часа. «Энергопотребление» показывает снижение остаточной емкости батареи [%] за 24 часа. «Все приложения» — это эксперимент со стандартными приложениями, входящими в операционную систему AOSP, и вышеперечисленными 42 приложениями. «нет приложений» показывает результаты только со стандартными приложениями. «Без верхней части (предложенной)" показывает результаты эксперимента, в котором верхняя часть приложения, оцененная предложенным методом, была удалена из «всех приложений». «Без топа (стандартного)" показывает результат эксперимента, в результате которого наиболее разряженное приложение, оцененное по стандартной функции Android OS, было удалено из «всех приложений». Сосредоточившись на «всех приложениях» и «без приложений», эти результаты показывают, что энергопотребление и количество «AlarmManager» в выключенном состоянии значительно увеличиваются при установке приложений. Из них видно, что энергопотребление в выключенном состоянии в основном обусловлено установленными приложениями. Сравнивая «без верха (предлагается)» и «без верха (стандарт)», мы видим, что «AlarmManager» и энергопотребление нашего метода меньше, чем у стандартного метода для Android. Из этого можно сделать вывод, что приложения, разряжающие батарею, можно идентифицировать, отслеживая количество вызовов тревоги приложениями.
Дискуссия
В этом разделе мы обсудим область применения нашего метода. Наш метод требует модификации операционной системы. Существует множество устройств, в которые пользователи могут установить свою индивидуальную операционную систему, например, опытные устройства. Пользователи могут построить операционную систему с помощью нашего метода и использовать наш метод с этими устройствами. Наша экспериментальная среда также основана на этом методе. Распространение двоичного файла операционной системы, который называется пользовательским ПЗУ, включая наш метод, является еще одним способом применения нашего метода. Применение нашего метода поставщиком смартфонов также является методом использования нашего метода. С помощью этого метода наш метод может быть использован и для устройств, не имеющих опыта работы.
Построение среды оценки приложений с устройством опыт работы поставщиков приложений и дистрибьюторов приложений также является эффективным способом использования нашего метода.
Заключение
В данной статье мы концентрируемся на энергопотреблении Android-устройств в выключенном состоянии. Мы предложили метод идентификации приложений, разряжающих батареи, путем мониторинга вызова сигнализации. Наши эксперименты показали, что наш метод может эффективно идентифицировать приложения, сильно потребляющие электроэнергию.
Литература:
- Новостной доклад Nikkei 1 апреля 2013 г. http://www.nikkei.com/article/DGXN ASFK2600W_W3A320C1000000/
- S. Курихара, С. Фукуда, А. Коянаги, А. Кубота, А. Накараи, М. Огути и С. Ямагути, «Исследование по выявлению андроидных приложений, сбрасывающих батареи, в выключенном состоянии», 2015 г. 4-я Глобальная конференция по потребительской электронике (GCCE), 2015 г. IEEE.
- GooglePlayStore Рейтинг бесплатных приложений https://play.google.com/store/apps/category/APP_WIDGETS/collection/ topselling_free