вытеснение фоновых activity что это такое

Мы нашли секретный способ управлять фоновыми процессами в телефоне. Показываем

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

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

Многие пользователи ошибочно считают, что оперативную память «съедают» те приложения, которые остаются свернутыми, и если их закрыть, можно таким образом освободить бОльшую часть памяти.

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

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

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

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

Как включить параметры разработчика

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

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

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

Для того, чтобы управлять фоновыми процессами, в меню «Параметры разработчика» необходимо найти пункт «Приложения». Здесь находится несколько параметров, отвечающих за работу фоновых процессов. Например, параметр «Вытеснение фоновых Activity» позволяет принудительно останавливать действия приложений после их закрытия (не рекомендуем включать), а параметр ANR в фоновом режиме — отображать фоновые уведомление в случае, когда какой-то процесс не отвечает.

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

По умолчанию здесь установлено значение «Стандартное ограничение».

Для слабых смартфонов с небольшим количеством оперативной памяти можно ограничиться значением «не более 1−2 процессов». Для устройств «пошустрее» можно установить лимит «не более 4 процессов».

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

Заключение

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

Источник

Мы нашли секретный способ управлять фоновыми процессами в телефоне. Показываем

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

Многие пользователи ошибочно считают, что оперативную память «съедают» те приложения, которые остаются свернутыми, и если их закрыть, можно таким образом освободить бОльшую часть памяти.

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

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

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

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

Как включить параметры разработчика

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

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

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

Для того, чтобы управлять фоновыми процессами, в меню «Параметры разработчика» необходимо найти пункт «Приложения». Здесь находится несколько параметров, отвечающих за работу фоновых процессов. Например, параметр «Вытеснение фоновых Activity» позволяет принудительно останавливать действия приложений после их закрытия (не рекомендуем включать), а параметр ANR в фоновом режиме — отображать фоновые уведомление в случае, когда какой-то процесс не отвечает.

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

По умолчанию здесь установлено значение «Стандартное ограничение».

Для слабых смартфонов с небольшим количеством оперативной памяти можно ограничиться значением «не более 1−2 процессов». Для устройств «пошустрее» можно установить лимит «не более 4 процессов».

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

Заключение

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

Источник

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

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

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

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

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

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

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

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

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

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

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

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

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

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

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

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

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

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

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

Источник

Что такое фоновый режим и стоит ли закрывать фоновые приложения на Android?

Для многих людей вполне привычен процесс закрытия фоновых приложений на мобильном устройстве. И это вполне логично: при закрытии программ на компьютере освобождается ОЗУ и снижается нагрузка на процессор. Однако на смартфонах все устроено несколько иначе.

Что такое фоновый режим в андроид – куда на самом деле девается оперативная память?

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

Незакрытые андроид-приложения продолжают работать в фоновом режим?

Отчасти это так, однако «работать» – не совсем подходящее слово. Для начала нужно разобраться в теории. Практически все android-приложения состоят из двух основных частей:

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Переключаться между программами без потери данных можно до тех пор, пока мобильному устройству хватает ОЗУ. Как только заканчивается оперативная память, с которой могут работать приложения, операционная система начинает выгружать из памяти те приложения, которые давно не использовались, таким образом освобождая место в ней для используемых программ.

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

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

Закрытие фоновых android-приложений улучшает производительность?

На самом деле это еще один миф. При очистке диспетчера задач вручную удастся освободить от силы 100-200 Мб, что никак не повлияет на производительность смартфона. Этот показатель может быть немного больше, если в меню многозадачности были игры, которые еще не выгрузились из оперативной памяти.

Куда на самом деле «утекает» память android-устройств? Как это проверить?

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

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

Сервисы – эта та часть мобильного приложения, которую пользователь не видит. Именно сервисы работают в фоновом режиме, занимают ОЗУ и разряжают мобильное устройство. Обычно сервисы начинают свою работу тогда, когда возникает какое-либо событие. Но бывает и так, что мобильное приложение может работать в фоновом режиме до тех пор, пока в панели уведомлений будет отображаться его иконка.

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Как действительно можно остановить чрезмерное потребление ресурсов мобильного устройства различными андроид-приложениями?

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

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

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

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Программное обеспечение для заморозки android-приложений

Специализированные программы автоматически останавливают ненужные мобильному устройству сервисы, но останавливают их лишь частично. Для полноценной работы подобных программ необходимы root-права. Чтобы заморозить ненужные сервисы, скачайте специализированное приложение (например, Greenify), запустите его и выберите программы, службы которых вы хотите приостановить.

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Отключение событий

Этот способ подойдет, если у вас есть root-доступ к своему мобильному устройству. В таком случае нет необходимости замораживать службы, так как можно сразу избавиться от причины их запуска – событий. Для этого нужно будет установить приложение Автостартс. При отключении событий ни в коем случае не трогайте системные, так как это может негативно отразиться на работе мобильного устройства. Также стоит учитывать, что после отключения сторонних событий некоторые программы могут работать хуже (пропадут некоторые автоматические действия, уведомления и т.д.).

Удаление программ

Это самый простой и в то же время наиболее радикальный способ. Достаточно просто избавиться от сторонних приложений, которые расходуют больше всего ресурсов мобильного устройства. Например, после удаления приложений социальных сетей вы практически ничего не потеряете, так как сможете сидеть на странице ВКонтакте или в Instagram через браузер, а вот экономия ОЗУ и заряда аккумулятора будет очень даже ощутима.

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Выводы и советы

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

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

Пожалуйста, опубликуйте свои отзывы по текущей теме материала. За комментарии, подписки, лайки, отклики, дизлайки низкий вам поклон!

Источник

Кому жить, а кому умереть: приоритеты процессов в Android

Примечание переводчика: при переводе старался максимально пользоваться терминологией, которую предлагает сам Google в русскоязычной версии документации по Android, таким образом «service» стал «службой», «content provider» стал «поставщиком контента», и так далее. А вот «activity» стать «операцией» так и не смог — не пересилил я себя. Извините.

Иерархия процессов в Android

вытеснение фоновых activity что это такое. Смотреть фото вытеснение фоновых activity что это такое. Смотреть картинку вытеснение фоновых activity что это такое. Картинка про вытеснение фоновых activity что это такое. Фото вытеснение фоновых activity что это такое

Процессы переднего плана

Вы наверняка думаете, что то, с чем взаимодействует пользователь в любой отдельно взятый момент времени является тем компонентом системы, который уничтожать никак нельзя (по крайней мере пока пользователь продолжает свою работу), и вы абсолютно правы. Одно но: «то, с чем взаимодействует пользователь в любой отдельно взятый момент времени» — слегка нечёткое определение. Одним из компонентов, попадающих в эту категорию, является Activity переднего плана — та, в которой onResume() уже вызван, а onPause() — ещё нет.

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

Есть несколько других случаев, в которых приоритет процесса временно повышается до приоритета процесса переднего плана. К ним относится выполнение службой следующих методов жизненного цикла: onCreate(), onStartCommand() и onDestroy(). Выполнение приёмником широковещательных сообщений (broadcast receiver) метода onReceive() тоже относится к ним же. Это повышение приоритета необходимо для того, чтобы сделать данные методы жизненного цикла атомарными и дать возможность каждому компоненту выполнить их без того, чтобы быть уничтоженным системой.

Видимые процессы

Activity является видимой от вызова onStart() до вызова onStop(). Между этими двумя вызовами можно делать всё, что ожидается от видимой Activity : обновление экрана, и так далее.

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

Примечание: одной из причин того, что результат startActivityForResult() обрабатывается в onActivityResult(), а результат requestPermissions() — в onRequestPermissionsResult(), а не в функциях обратного вызова, как раз-таки и является возможность уничтожения видимого процесса — если весь ваш процесс будет уничтожен, то и все существующие в нем функции обратного вызова будут уничтожены тоже. Поэтому, если вы видите библиотеки, использующие подход с функциями обратного вызова, знайте: они могут работать не так, как вам хочется, в случае нехватки памяти в системе.

Служебные процессы

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

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

Обратите особое внимание на константу, возвращаемую вами из onStartCommand(), так как она определяет поведение системы в случае, если ваш процесс будет уничтожен при нехватке памяти:

Фоновые процессы

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

Пустые процессы

Как и в любой иерархии, всегда есть самый низкий уровень. В пустых процессах нет ни одного активного компонента, и Android может уничтожить их в любой момент, но обычно они всё-таки удерживаются в памяти какое-то время (это опять к слову об эффективном использовании памяти, которое не заключается в том, чтобы вычищать всё подряд).

На что стоит обратить внимание

Хотя мы и говорили о приоритетах процессов в терминах того, какие компоненты запущены в ваших процессах, помните, что иерархия существует на уровне процессов, а не компонентов. Один лишь компонент (например, служба переднего плана) переведёт весь ваш процесс в категорию процессов переднего плана. Хотя большинство приложений прекрасно живут в одном процессе, нужно помнить, что если жизненный цикл вашего приложения может сильно отличаться от запуска к запуску, или же в приложении есть как очень тяжелая задача, так и долго выполняющаяся, но легковесная, причем первая не зависит от второй, то есть смысл выделить два процесса. Пусть тяжёлая задача выполняется в первом процессе, а легковесная во втором, и тогда в случае нехватки памяти тяжёлая может быть приостановлена, а легковесная продолжит свою работу.

Не забывайте о других и помните о вашем пользователе

Создавайте ваше приложение таким образом, чтобы оно постоянно работало на том уровне приоритета, который ему нужен — не больше и не меньше. Помните также, что вы как разработчик имеете на руках устройство, которое намного мощнее слабейших устройств конечных пользователей, и из-за этого вы можете никогда не увидеть своими глазами уничтожение видимого процесса (а служебного — и подавно), но это не значит, что этого никогда не происходит.

Хоть я и рекомендую обычно покупать для тестирования как можно более слабое устройство, вы можете потестировать поведение своего приложения при его уничтожении даже на своём флагмане. Чтобы уничтожить своё приложение (вместе со всеми его процессами), выполните следующее:

Если у вас несколько процессов, вы можете сначала найти PID нужного вам процесса, посмотрев на вторую колонку (то есть первое число) результата следующей команды:

И потом прихлопнуть этот процесс:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *