Приложения в режиме ожидания андроид
Работа смартфона — весьма сложный процесс, который не прекращается ни на минуту даже ночью, когда телефон лежит у вас под подушкой. Большинство процессов в смартфоне продолжают свою работу незаметно для глаз пользователя и могут потреблять достаточно большое количество ресурсов.
Многие пользователи ошибочно считают, что оперативную память «съедают» те приложения, которые остаются свернутыми, и если их закрыть, можно таким образом освободить бОльшую часть памяти.
На самом деле это не так. Свернутые приложения, находящиеся в режиме ожидания — это лишь верхушка айсберга. По сути – это только кэшированные данные, которые позволяют вам вернуться в приложение без потери последних данных. Закрыв их, вы сможете лишь немного освободить оперативную память телефона. Основная же часть ресурсов приходится на процессы или службы приложений. Именно они потребляют оперативную память и расходуют заряд батареи даже тогда, когда приложение закрыто.
Не все из них одинаково полезны, но есть и те, которые могут отвечать за безопасность устройства и его стабильную работу. Тем не менее, если телефон стал слишком задумчивым и вы замечаете, что он потребляет заряд батареи, даже находясь в режиме ожидания, вам будет полезно узнать как ограничить работу фоновых процессов и тем самым освободить оперативную память устройства, а также повысить его быстродействие.
Как управлять фоновыми процессами
Получить расширенный контроль над фоновыми процессами можно с помощью специальных инструментов, встроенных в операционную систему. В смартфонах Android эта возможность реализована с помощью скрытого меню для разработчиков.
Как включить параметры разработчика
Для того, чтобы активировать режим разработчика, необходимо перейти в Настройки телефона, открыть пункт «Сведения о телефоне», затем «Сведения о ПО» и несколько раз подряд нажать на пункт «Номер Сборки» до появления системного уведомления о том, что режим разработчика активирован.
Затем нужно вернуться назад, в главные настройки. Если все было сделано правильно, вы увидите, что внизу появился новый пункт меню «Параметры разработчика».
Как управлять фоновыми процессами
Для того, чтобы управлять фоновыми процессами, в меню «Параметры разработчика» необходимо найти пункт «Приложения». Здесь находится несколько параметров, отвечающих за работу фоновых процессов. Например, параметр «Вытеснение фоновых Activity» позволяет принудительно останавливать действия приложений после их закрытия (не рекомендуем включать), а параметр ANR в фоновом режиме — отображать фоновые уведомление в случае, когда какой-то процесс не отвечает.
Больше всего нас здесь интересует параметр «Лимит фоновых процессов», который позволяет выбрать какое количество процессов будет использоваться вашим смартфоном в фоне. Данное ограничение затрагивает в основном сторонние приложения, установленные пользователем, поэтому можно не переживать за работающие системные службы.
По умолчанию здесь установлено значение «Стандартное ограничение».
Для слабых смартфонов с небольшим количеством оперативной памяти можно ограничиться значением «не более 1−2 процессов». Для устройств «пошустрее» можно установить лимит «не более 4 процессов».
Полное отключение фоновых процессов может повлиять на корректную работу некоторых приложений, поэтому мы не рекомендуем использовать данную функцию по максимуму, особенно если вы активно пользуетесь мессенджерами, почтой и другими приложениями, которые требуют проверки уведомлений.
Заключение
Теперь вы знаете, как, изменив лимит фоновых процессов, можно существенно снизить потребление оперативной памяти и повысить общее быстродействие смартфона. Но помните, что использовать меню разработчика стоит только в том случае, если у вас наблюдаются существенные проблемы в работе устройства и не пренебрегайте этим правилом без крайней необходимости, в противном случае есть риск навредить работе гаджета.
Автономность смартфона играет крайне важную роль для любого пользователя. Со временем батарейка устройства начинает быстро садиться. Чтобы этого не произошло, мы отключаем вредную настройку на телефонах Android; нещадно ест батарею после этого разве что сам владелец девайса. А при разумном использовании смартфона аккумулятор будет долго держать высокий уровень заряда.
На что уходит заряд батареи Android
Работа любого смартфона напрямую связана с электроэнергией. Для обеспечения комфортного использования производители устанавливают в устройство аккумулятор, который, в теории, может продержаться хоть 5-7 дней на одном заряде. Однако отдельные функции разряжают батарейку быстрее других.
Совет. Чтобы не беспокоиться об уровне заряда АКБ, рекомендуется покупать модели с батарейками на 4500-5000 мАч.
Главным «врагом» аккумулятора является экран. На телефоне он занимает много пространства, а для отображения контента требуется подсветка. Именно она в большей степени, чем любые другие функции, влияет на уровень заряда. Однако есть и еще один немаловажный фактор – нагрузка. Если человек смотрит видеоролик или фильм, то за 1 час телефон, в среднем, разряжается на 10-15 % при умеренной яркости. А если провести то же время в игре, то батарейка просядет на 20, а то и 30 %.
Также многие владельцы мобильных устройств отмечают, что телефон разряжается даже при потухшем экране. Это серьезный повод обеспокоиться состоянием гаджета, поскольку так происходить не должно. Быстрый расход заряда в режиме ожидания – признак активности фоновых процессов. Распознать их бывает нелегко, однако своевременное отключение позволяет сэкономить 15-20 % в течение дня.
Оптимизируем расход энергии
Чтобы смартфон работал долго от одного заряда, его необходимо оптимизировать. Под этим словом скрываются несколько простых действий, которые в состоянии выполнить абсолютно любой владелец устройства, вне зависимости от уровня технических знаний.
Отключение GPS
Если отбросить в сторону фактор нагрузок и яркости экрана, главным источником проблем для аккумулятора является датчик GPS. По умолчанию он встроен в каждую модель, но включается по требованию владельца. Если своевременно не отключить работу GPS, батарейка начнет быстро разряжаться даже с погасшим дисплеем.
Такой расход энергии обусловлен тем, что аппарат вынужден постоянно обновлять информацию о спутниках. Для отключения GPS необходимо опустить шторку уведомлений и кликнуть по значку «Местоположение» или «Геолокация». Когда он потухнет, датчик будет деактивирован. Также операцию можно повторить через настройки телефона.
Настройка энергопотребления
Конечно, ни один аккумулятор не может жить вечно. Но его энергопотребление оптимизируется после выполнения нескольких простых действий:
- Включите режим «Автояркость».
- В настройках дисплея задайте период, после которого экран будет автоматически гаснуть.
- Отключите вибрацию.
- Разрешите работу GPS, Bluetooth и других датчиков только при запуске определенных приложений (например, в навигаторе).
- В пункте настроек «Для разработчиков» отключите анимации.
- Отключайте Wi-Fi и мобильный интернет, когда не нужен доступ к сети.
- Регулярно производите выгрузку оперативной памяти через Диспетчер задач.
- Если расход аккумулятора продолжает оставаться внушительным, активируйте режим энергосбережения.
Если выполнить всего 8 шагов по настройке потребления энергии, гаджет получит прирост в 25-30 %. То есть каждый день пользователь сможет рассчитывать на дополнительные 4-5 часов работы устройства при умеренных нагрузках.
Яркость экрана
Высокий уровень яркости необходим только в тех случаях, когда человек пользуется смартфоном в условиях солнечной погоды. В помещении вполне достаточно 20-50 %, в зависимости от силы освещения. Глазам одинаково комфортно считывать информацию и на 100 % яркости, и на 50 %. Но разница в плане энергопотребления между двумя уровнями просто колоссальная. Поэтому важно своевременно снижать яркость или включать настройку «Автояркость».
На заметку. Вне зависимости от уровня яркости устройства с AMOLED-экранами будут дольше держать заряд в сравнении с IPS-панелями.
Прочие методы
Если стандартные способы оптимизации расхода аккумулятора не помогают, можно обратиться к помощи специальных приложений. В Google Play доступны такие программы, как Battery Doctor, Battery Saver и AccuBattery. Все они в автоматическом режиме оптимизируют работу смартфона, благодаря чему он начинает разряжаться медленнее.
Приложения в фоновом режиме тоже садят аккумулятор
Важнейшим фактором при быстрой разрядке батареи является работа приложений в фоне. В тот момент, когда пользователь закрывает программу, она продолжает функционировать, потребляя тем самым энергию. Чтобы этого не произошло, рекомендуется ограничить фоновые процессы при помощи следующей инструкции:
- Откройте настройки телефона.
- Перейдите в раздел «Приложения».
- Выберете интересующую программу.
- В подпункте «Контроль активности» укажите параметр «Жесткое ограничение».
В зависимости от конкретной модели устройства пункты меню отличаются. В любом случае, кнопку ограничения фоновых процессов нужно искать в разделе настроек приложений.
Почему в режиме ожидания садится батарея
Главной причиной, почему батарея разряжается в режиме ожидания, является работа фоновых процессов. Достаточно выставить жесткие ограничения для большинства приложений, как аккумулятор перестанет терять по 5 % за 1 час бездействия.
Если проблема продолжится и после этого, есть смысл задуматься о состоянии смартфона. Со временем любая батарейка теряет энергоемкость. Она априори начинает разряжаться быстрее, поэтому рассчитывать на то, что старый аппарат после оптимизации сможет работать очень долго, не стоит.
Приложения, которые работают в фоновом режиме, совсем не так безобидны, как кажется на первый взгляд. Даже если они написаны проверенными разработчиками и ничего вредоносного за ними не стоит, у них есть один существенный минус, который перекрывает многие плюсы. Минусом этим является сильное влияние на время автономной работы. Когда приложение на экране и работает только тогда, когда смартфон разблокирован, вы можете контролировать время его работы. В остальных случаях оно делает что-то само по себе и никто не знает, когда оно начнет скачивать данные или просто определять положение устройства через GPS. С этим сталкиваются все и в этой статье я дам несколько полезных советов, что с этим делать.
С фоновыми процессами надо быть осторожней.
Портится ли смартфон со временем
Многие пользователи часто думают, что со временем их смартфон просто испортился и поэтому перестал держать заряд, начал медленнее работать и чаще зависать. Конечно, небольшой износ у смартфонов действительно есть, но он не оказывает такого влияния, как сам пользователь. Особенно это относится к устройствам на Android. Именно они с годами обрастают фоновыми приложениями, расширениями и прочей чешуей, которая оказывает куда большее влияние на гаджет, чем просто старение плат.
Как контролироваться фоновые процессы в телефоне?
В некоторых случаях, прежде чем вы сможете начать настраивать параметры, вам нужно включить параметры разработчика. Для этого надо открыть ”Настройки”, далее ”О телефоне”, а затем несколько раз нажать на поле ”Номер сборки” (около семи раз). Вы получите уведомление о том, что параметры разработчика были разблокированы, как только вы закончите.
Первым делом перейдите в ”Настройки”, далее ”Система”, потом ”Дополнительно” и ”Параметры разработчика”. В этом меню надо найти пункт ”Работающие службы”. Внутри вы увидите, какие приложения потребляют оперативную память и сможете их установить. Но важно понимать, если вы не знаете, что останавливаете, вы можете сделать только хуже. Останавливайте только то, что сами запускали.
Опасно ли останавливать фоновые процессы Android
В системе есть ”защита от дурака” и остановить что-то, что действительно может привести к критической ошибке, скорее всего, не получится, но испытывать судьбу не стоит.
Чтобы остановить процесс, надо будет открыть выбранное приложение и нажать ”остановить”. Все просто.
7 крутых виджетов для Android, которые я советую попробовать
Если вы сомневаетесь или просто не хотите останавливать процессы из этого меню, можно зайти в другое место. Откройте ”Настройка”, далее ”Приложения”, после этого откройте список приложений и нажмите в правом верхнем углу значок с тремя точками. Там выберите ”Показать системные процессы”.
Из-за чего садится батарея телефона
А теперь разберем, от чего именно садится батарея вашего телефона. Способы анализа, приведеные выше, бесспорно хороши, но есть в них и минусы. Они не показывают непосредственного воздействия приложения на аккумулятор. Чтобы понять, сколько процентов потратили процессы каждого конкретного приложения, надо открыть ”Настройки”, далее ”Аккумулятор”. Тут вы можете найти информацию о том, какие приложения работают и насколько активно они сажают аккумулятор. Так будет еще проще решить, что остановить или и вовсе удалить.
С каждой новой версией Android количество систем автоматического сохранения заряда увеличивается. Это означает, что со временем количество настроек может сократиться.
Обсудить стоит ли пользоваться определенными приложениями вы можете в нашем Telegram-чате. Там всегда есть кто-то, кто может что-то посоветовать.
Много споров и дискуссий всегда вызывали сторонние приложения для оптимизации работы смартфона. С одной стороны, они позволяют не задумываться о том, как и что надо сделать, чтобы остановить ненужные процессы, но могут быть в таких приложениях и минусы.
Главным минусом будет то, что такие приложения могут сами еще больше сажать аккумулятор. На это жалуются многие пользователи. Иногда действительно проще сделать все вручную, чем доверять все автоматике.
Давайте разберемся в основных моментах, связанных с этой темой. Возможно, это позволит вам в будущем избежать ошибок, с которыми сталкивалось большинство разработчиков мобильных приложений.
В интернете огромное количество разрозненной информации, собрать которую в единое общее руководство было одной из основных целей этой статьи.
Общая информация
В Android есть следующие платформенные фичи для оптимизации энергопотребления:
В Android 6 появились две фичи для сохранения заряда батареи за счет управления поведением приложений, когда устройство не на зарядке:
Doze Mode
Когда устройство находится в режиме Doze, доступ приложений к определенным ресурсам откладывается до появления окна обслуживания (maintenance window). Список конкретных ограничений.
Если пользователь оставляет на какое-то время устройство отключенным от зарядки и с выключенным экраном, то оно переходит в режим Doze. В этом режиме система пытается сохранить заряд батареи, ограничивая доступ приложений к сетевым и ресурсоемким службам, откладывает Jobs, синхронизацию и Alarms.
Периодически система выходит из режима Doze, чтобы приложения могли выполнить отложенные действия. Во время этого окна обслуживания (maintenance window) система запускает все отложенные синхронизации, Jobs, Alarms и позволяет приложениям получить доступ к сети.
Со временем система все реже и реже планирует maintenance windows, что помогает снизить расход энергии, когда устройство не на зарядке.
В режиме Doze к приложениям применяются следующие ограничения:
- Доступ в сеть приостановлен.
- Стандартные AlarmManager откладываются до следующего окна обслуживания.
- Система не сканирует Wi-Fi.
- Система не позволяет запускаться sync adapters.
- Система не позволяет запускаться JobScheduler.
Чеклист для приложения в режиме Doze:
App StandBy, App StandBy Buckets
App StandBy позволяет системе определить, что приложение простаивает, когда пользователь не пользуется им активно. App StandBy запускается, когда не выполняется ни одно из следующих условий:
- Пользователь явно запускает приложение.
- Приложение находится на переднем плане (явно или в качестве Foreground service, либо используется другой Activity).
- Приложение генерирует уведомления, которые пользователь видит на экране блокировки или в области уведомлений.
- Приложение является активным приложением администратора устройств.
Когда устройство подключается к зарядке, система выпускает приложения из режима Standby, что позволяет им выполнять любые задачи. Если устройство не используется в течение длительного периода времени, система предоставляет бездействующим приложениям доступ в сеть примерно раз в день.
Определение частоты использования отличается у разных производителей, особенно «жестит» Samsung.
В Android 9 появились новые фичи для управления питанием устройства. Они делятся на две категории:
-
. Система ограничивает доступ приложения к ресурсам устройства в зависимости от модели поведения пользователя. . Когда включена функция экономии заряда батареи, система накладывает ограничения на все приложения.
Эти ограничения применяются ко всем приложениям независимо от их targetSdk .
App StandBy Buckets помогает системе приоритизировать запросы приложений к ресурсам на основании того, как давно и как часто использовалось приложение. На основе шаблонов использования приложение помещается в один из пяти сегментов. Система ограничивает ресурсы устройства, доступные для каждого приложения, в зависимости от того, в каком сегменте находится приложение.
Пять сегментов, назначаемые приложениям в зависимости от приоритета:
Каждый производитель может установить свои критерии присвоения неактивных приложений к сегментам.
Для определения сегмента, в который система поместит приложение, используется машинное обучение. С его помощью прогнозируется поведение пользователя. Например, если приложение из сегмента Rare было только что использовано и перешло в Active, то это не означает, что после использования приложение поднимется в более приоритетный сегмент. Сегменты определяются на основе прогнозов будущих действий пользователя, а не на основе недавнего использования.
Полезная информация по работе с App StandBy Buckets:
Firebase Cloud Messaging с App StandBy и режимом Doze
Как протестировать приложение с различными ограничениями системы
Тестирование Doze Mode
- Получить доступ к ADB (android device bridge) в текущей сессии:
Тестирование приложения с App StandBy для Android < 9
- Проверить работу приложения. Убедиться, что восстанавливается корректно. Проверить, продолжают ли работать уведомления и фоновые процессы.
Тестирование App Standby Buckets
Можно вручную переместить приложение в определенный App StandBy bucket с помощью команды:
Команда проверки, в каком сегменте сейчас приложение:
Тестирование ограничений на фоновые процессы
- Вручную применить ограничения на выполнение фоновых задач:
- Убрать ограничения на выполнение фоновых процессов:
Тестирование режима Battery safety
- Проверить поведение устройства в условиях экономии энергии:
Фоновые оптимизации.
Ограничения, начиная с Android 7:
Ограничения, начиная с Android 9:
Если система замечает, что приложение потребляет чрезмерное количество ресурсов, она уведомляет пользователя и дает ему возможность ограничить действия приложения. Это поведение включает в себя:
- Чрезмерные wake locks.
- Избыточное количество фоновых сервисов.
Точные ограничения определяются производителем устройства.
Battery Historian
Инструмент Battery Historian дает представление о расходе заряда батареи. Инструмент визуализирует связанные с энергопотреблением события и предоставляет разнообразные данные, которые могут помочь вам определить поведение приложения, разряжающего батарею.
Анализ приложения с помощью Battery Historian
Предварительно необходимо установить Docker.
- Получить доступ к ADB (android device bridge) в текущей сессии:
- Подключить устройство к ПК.
- Убить текущий ADB-сервер.
-
Сбросить данные о батарее:
- Отключить устройство и пройти по выбранному вами сценарию использования приложения.
- Подключить устройство.
- Проверить, что устройство подключено:
На этом графике вы можете узнать, в какой момент запустился ваш сервис, установились wake locks, был запущен JobScheduler и другую информацию. Возможно, вы даже узнаете о своем приложении то, чего еще не знали и о чем не подозревали. Уделите этому инструменту пару-тройку свободных часов и гарантирую, вы не пожалеете.
Energy Profiler
Energy Profiler — встроенный в Android Studio анализатор энергопотребления. Думаю, тут не стоит задерживаться. Этот инструмент довольно хорошо описан, и каждый может оценить его в действии.
BatteryStats + UI-тесты
В этой главе мы разберем, как можно использовать связку из BatteryStats и UI-тестирования.
Для парсинга файла, получившегося после теста, применяется .awk-файл. Сам файл я решил не прикладывать, т.к. он получился огромным, и не все будут использовать те же поля, что использовал я. В результате получаем текстовый BatteryTestsResult.txt такого содержания:
Результат более удобочитаемый, что стандартный файл BatteryStats. При желании вы можете добавить необходимые поля для анализа либо вместо .awk-файла использовать регулярные выражения.
P.S. Проблемы с Samsung
Вместе с релизом Samsung S8 была представлена утилита для увеличения времени работы батареи под названием App Power Monitor. И чтобы приложения работали корректно, их нужно вносить в whitelist. Также Samsung — рекордсмен по убийству приложений благодаря его «Адаптивной батарее».
На сайте есть рекомендации для разработчиков по обходу ограничений, но в случае с данным производителем:
Чтобы до конца понять, как работает и от каких факторов зависит энергопотребление Android-приложения, одной статьи, конечно, недостаточно. Но надеюсь, что я выполнил свою главную цель — заинтересовать вас этой темой, и вы сможете оптимизировать работу с энергопотреблением. На этом у меня все.
Читайте также: