Андроид какие процессы можно остановить

Как отключить приложения в фоновом режиме и сэкономить аккумулятор

Приложения, которые работают в фоновом режиме, совсем не так безобидны, как кажется на первый взгляд. Даже если они написаны проверенными разработчиками и ничего вредоносного за ними не стоит, у них есть один существенный минус, который перекрывает многие плюсы. Минусом этим является сильное влияние на время автономной работы. Когда приложение на экране и работает только тогда, когда смартфон разблокирован, вы можете контролировать время его работы. В остальных случаях оно делает что-то само по себе и никто не знает, когда оно начнет скачивать данные или просто определять положение устройства через GPS. С этим сталкиваются все и в этой статье я дам несколько полезных советов, что с этим делать.

С фоновыми процессами надо быть осторожней.

Портится ли смартфон со временем

Многие пользователи часто думают, что со временем их смартфон просто испортился и поэтому перестал держать заряд, начал медленнее работать и чаще зависать. Конечно, небольшой износ у смартфонов действительно есть, но он не оказывает такого влияния, как сам пользователь. Особенно это относится к устройствам на Android. Именно они с годами обрастают фоновыми приложениями, расширениями и прочей чешуей, которая оказывает куда большее влияние на гаджет, чем просто старение плат.

Как контролироваться фоновые процессы в телефоне?

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

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

Первым делом перейдите в ”Настройки”, далее ”Система”, потом ”Дополнительно” и ”Параметры разработчика”. В этом меню надо найти пункт ”Работающие службы”. Внутри вы увидите, какие приложения потребляют оперативную память и сможете их установить. Но важно понимать, если вы не знаете, что останавливаете, вы можете сделать только хуже. Останавливайте только то, что сами запускали.

Если вы не знаете, что можно останавливать, а что нет, вы будете действовать на свой страх и риск. Главное, не трогайте приложения, в названии которых есть ”Сервисы Google” или просто ”Google” — за редким исключением это будут системные службы.

Опасно ли останавливать фоновые процессы Android

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

Чтобы остановить процесс, надо будет открыть выбранное приложение и нажать ”остановить”. Все просто.

7 крутых виджетов для Android, которые я советую попробовать

Если вы сомневаетесь или просто не хотите останавливать процессы из этого меню, можно зайти в другое место. Откройте ”Настройка”, далее ”Приложения”, после этого откройте список приложений и нажмите в правом верхнем углу значок с тремя точками. Там выберите ”Показать системные процессы”.

Читайте также:  Татарский словарь для андроид

Чтобы принудительно остановить или удалить приложение вручную через список приложений, перейдите в «Настройки», далее «Приложения», потом «Диспетчер приложений» и выберите приложение, которое вы хотите изменить. Не удаляйте приложения, которые появляются, когда вы выбираете опцию «Показать системные приложения».

Изучите список, поймите, что вам не нужно, и остановите этот процесс. Надо понимать, что некоторые приложения сразу же перезапустят процесс и так можно делать бесконечно. Для этого вернитесь назад и просто остановите приложение. А если вы вообще не пользуетесь им, просто удалите его — так будет еще лучше.

Из-за чего садится батарея телефона

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

С каждой новой версией Android количество систем автоматического сохранения заряда увеличивается. Это означает, что со временем количество настроек может сократиться.

Обсудить стоит ли пользоваться определенными приложениями вы можете в нашем Telegram-чате. Там всегда есть кто-то, кто может что-то посоветовать.

Много споров и дискуссий всегда вызывали сторонние приложения для оптимизации работы смартфона. С одной стороны, они позволяют не задумываться о том, как и что надо сделать, чтобы остановить ненужные процессы, но могут быть в таких приложениях и минусы.

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

Источник

Руководство по фоновой работе в Android. Часть 1

О фоновой работе приложений в Android есть много статей, но мне не удалось найти подробного руководства по реализации работы в фоне – думаю, из-за того, что появляется все больше новых инструментов для такой работы. Поэтому я решил написать серию статей о принципах, инструментах и методах асинхронной работы в приложениях под Android.

Будет несколько частей:

  1. Основной поток, осуществление фоновой работы с помощью AsyncTask, публикация результатов в основном потоке.
  2. Затруднения при использовании AsyncTask. Loaders как один из способов их избежать.
  3. Работа в фоне с помощью ThreadPools и EventBus.
  4. RxJava 2 как метод асинхронной работы.
  5. Корутины в Kotlin как метод асинхронной работы.

Начнем с первой части.

Основы UI

Первое, что следует понять, – почему мы вообще беспокоимся о работе в фоне в мобильных приложениях.

Во всех приложениях для Android есть хотя бы один поток, на котором происходит прорисовка UI и обработка пользовательского ввода. Поэтому он и называется потоком UI или главным потоком.

Каждый метод жизненного цикла каждого компонента вашего приложения, включая Activity, Service и BroadcastReceiver, исполняется на UI-потоке.

Человеческий глаз преобразовывает сменяющиеся изображения в плавное видео, если частота смены достигает 60 кадров в секунду (да, это магическое число берется отсюда), давая основному потоку только 16 мc для прорисовки всего экрана.

Продолжительность сетевого вызова может быть в тысячи раз больше.

Когда мы хотим загрузить что-либо из Интернета (прогноз погоды, пробки, сколько стоит ваша часть биткоина в данный момент), мы не должны делать это из главного потока. Более того, Android не позволит нам, выбросив NetworkOnMainThreadException.

Читайте также:  Celtic heroes для андроид

Семь лет назад, когда я разрабатывал свои первые приложения на Android, подход от Google был ограничен использованием AsyncTasks. Давайте посмотрим, как мы писали код для общения с сервером (псевдокод преимущественно):

Метод doInBackground() гарантированно будет вызван не на основном потоке. Но на каком? Зависит от реализации. Вот как Android выбирает поток (это часть исходного кода класса AsyncTask):

Здесь можно увидеть, что выполнение зависит от параметра Executor. Посмотрим, откуда он берется:

Как здесь указано, по умолчанию executor ссылается на пул потоков размера 1. Это означает, что все AsyncTasks в вашем приложении запускаются последовательно. Это не всегда было верно, так как для версий ОС от DONUT до HONEYCOMB использовался пул размером от 2 до 4(в зависимости от количества ядер процессора). После HONEYCOMB AsyncTasks снова выполняются последовательно по умолчанию.

Итак, работа выполнена, байты закончили свое длинное путешествие с другого полушария. Нужно превратить их во что-то понятное и разместить на экране. К счастью, наша Activity тут как тут. Давайте поместим результат в одно из наших View.

О, черт! Опять исключение!

android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

Но мы не делали никаких сетевых обращений на основном потоке! Правильно, но мы попытались нарушить другой закон UI. Пользовательский интерфейс можно менять только из UI-потока. Это верно не только для Android, но и практически для любой системы, с которой вы столкнетесь. Причину этого хорошо объяснили в Java Concurrency In Practice. Вкратце – архитекторы хотели избежать сложной блокировки при изменениях из нескольких источников (пользовательский ввод, биндинг и другие изменения). Использование единственного потока решает эту проблему.

Да, но UI все равно нужно обновлять. У AsyncTask есть еще метод onPostExecute, который вызывается на UI-потоке:

Как эта магия работает? Посмотрим в исходном коде AsyncTask:

AsyncTask использует Handler для вызова onPostExecute в UI, ровно как и метод postOnUiThread в компонентах Android.

Handler прячет всю внутреннюю кухню. Какую именно? Идея состоит в том, чтобы иметь бесконечный цикл проверки сообщений, приходящих на UI-поток, и обрабатывать их соответствующе. Велосипедов тут никто не изобретает, хотя без кручения педалей не обошлось.

Для Android это реализовано классом Looper, который передается в InternalHandler в приведенном выше коде. Суть класса Looper находится в методе loop:

Он просто опрашивает очередь входящих сообщений в бесконечном цикле и обрабатывает эти сообщения. Это означает, что на UI-потоке должен быть инициализированный экземпляр Looper. Можно получить доступ к нему с помощью статического метода:

Кстати, вы только что узнали, как проверить, вызывается ли ваш код в UI-потоке:

Если вы попытаетесь создать экземпляр Handler в методе doInBackground, то получите другое исключение. Оно сообщит о необходимости наличия Looper для потока. Теперь вы знаете, что это значит.

Надо заметить, что AsyncTask может быть создан только в UI-потоке по указанным выше причинам.
Вы можете подумать, что AsyncTask – это удобный способ выполнения фоновой работы, так как он скрывает сложность и требует немного усилий при использовании, но есть несколько проблем, которые приходится решать по пути:

  • Каждый раз нужно писать достаточно много кода для решения относительно простой задачи
  • AsyncTasks ничего не знают о жизненном цикле. При неправильном обращении лучшее, что вы получите — утечка памяти, в худшем – сбой
  • AsyncTask не поддерживает сохранение состояния прогресса и повторное использование результатов загрузки.
Читайте также:  Функция android auto для интеграции со смартфоном

В следующей части я подробно разберу эти проблемы и покажу, как Loaders могут помочь их решить.

Источник

Что такое фоновые процессы в Android и как их отключить

Каждый хочет, чтобы его мобильный телефон работал быстро и без сбоев, а также, как можно дольше держал зарядку. Один из вариантов, который в этом случае придет на помощь, — отключение фоновых процессов.

Зачем нужны фоновые приложения и в чем их вред

Фоновые приложения – это вид программ, которые запускают определенные процессы без ведома пользователя и работают на фоне, поэтому они и получили такое название. Выглядит, будто приложение закрыто, но оно все равно использует ресурсы системы, сокращает объем оперативной памяти и время работы телефона от аккумулятора. На такое поведение данные программы имеют определенные причины, например, получение информации о геолокации, синхронизация либо иная активность, напрямую связанная с функциями этих приложений.

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

Как узнать запущенные фоновые процессы

Для того чтобы определить, какие операции оказывают влияние на работу устройства, необходимо:

  1. Активировать режим разработчика. Зайти в меню, а именно в «Настройки», затем «О телефоне». В самом низу открывшегося перечня щелкнуть по пункту «Номер сборки» 7 раз. После данного действия придет оповещение о том, что вы стали разработчиком.
  2. Перейти в появившийся раздел «Для разработчиков» и выбрать «Статистику процессов». На экране появятся данные о всех запущенных в настоящий момент программах, а также информация об объеме памяти, необходимой для их работы.
  3. Для получения сведений о том, какое количество заряда использует каждое установленное приложение, следует вернуться в «Настройки» и выбрать раздел «Батарея и производительность», затем «Использование батареи». В открывшемся окне появится статистика по всем программам в порядке убывания.

Какие приложения можно останавливать

Большинству пользователей мобильных телефонов совершенно не требуется функциональные возможности многих программ, которые работают в фоновом режиме. Самый распространенный пример – игры, редакторы фото и видео, проигрыватели музыки. Это относится и к другим приложениям. Определить, какие же скрытые процессы разрешено отключать, весьма просто: если оно не нужно пользователю в настоящий момент – значит его можно смело останавливать.

Система Андроид устроена так, что важные для работы телефона программы не позволят владельцу гаджета закрыть их фоновые процессы. Не рекомендуется к тому же отключать скрытые операции приложений, которые находятся в постоянном использовании, к примеру мессенджеров, так как от них перестанут приходить оповещения, возможно, важные для пользователя. Базовые приложения, названия которых начинается со слова «Google», например, Google Search, Google Play Store, останавливать также не стоит.

Как отключить приложения

Андроид позволяет владельцу смартфона вносить значительные изменения в его работу, в том числе запретить скрытые процессы большинства программ. Для этого необходимо:

  1. Открыть «Настройки».
  2. Найти пункт «Для разработчиков», после щелкнуть по разделу «Статистика процессов».
  3. Выбрать необходимые приложения, затем нажать кнопку «Остановить».
  4. Для принудительного завершения работы программы ее следует закрыть через «Диспетчер приложений».

Также можно воспользоваться специальными утилитами, предназначенными для автоматизации гаджета, например:

  • Greenify;
  • ES Task Manager;
  • Clean Master;
  • Advanced Task Manager;
  • ShutApp;
  • Naptime.

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

Источник

Оцените статью