Как Android управляет процессами

Windows позволяет настольным приложениям оставаться запущенными независимо от того, видны они или нет, в то время как Apple iOS позволяет приложениям выполнять лишь несколько ограниченных задач в фоновом режиме. Android находится где-то посередине — приложения, работающие на переднем плане, имеют приоритет, но у приложений гораздо больше свободы для работы в фоновом режиме, чем на iOS.

Мы рассмотрим, как именно Android управляет приложениями и процессами, запущенными на вашем телефоне или планшете, и показывает, что происходит в фоновом режиме.

Иерархия жизненного цикла процесса

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

  • 1. Процесс переднего плана . Используемое вами приложение считается процессом переднего плана. Другие процессы также могут рассматриваться как процессы переднего плана — например, если они взаимодействуют с процессом, который в настоящее время находится на переднем плане. Есть только несколько процессов переднего плана в любой момент времени.
  • 2. Видимый процесс . Видимый процесс не находится на переднем плане, но все еще влияет на то, что вы видите на экране. Например, процесс переднего плана может быть диалогом, который позволяет вам видеть приложение позади него — приложение, видимое в фоновом режиме, будет видимым процессом.
  • 3. Сервисный процесс . Сервисный процесс не связан ни с одним приложением, которое отображается на вашем экране. Тем не менее, он делает что-то в фоновом режиме, например, воспроизводит музыку или загружает данные в фоновом режиме. Например, если вы начинаете воспроизводить музыку и переключаетесь на другое приложение, воспроизведение музыки происходит в фоновом режиме и обрабатывается сервисным процессом.
  • 4. Фоновый процесс . Фоновые процессы в данный момент не видны пользователю. Они не влияют на опыт использования телефона. В любой момент времени многие фоновые процессы в настоящее время работают. Вы можете думать об этих фоновых процессах как о «приостановленных» приложениях. Они хранятся в памяти, поэтому вы можете быстро возобновить их использование, когда вернетесь к ним, но они не используют ценное процессорное время или другие ресурсы, не связанные с памятью.
  • 5. Пустой процесс . Пустой процесс больше не содержит данных приложения. Он может храниться в целях кэширования, чтобы ускорить запуск приложений позже, или система может уничтожить его при необходимости.

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

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

Android автоматически управляет процессами

Android хорошо справляется с автоматическим управлением этими процессами, поэтому вам не нужен убийца задач на Android.

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

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

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

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

Приложения Android могут запускаться в ответ на события

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

Управление процессами

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

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

Вы также можете перейти на экран «Настройки», нажать «Приложения», нажать на приложение и использовать кнопку «Стоп», чтобы убить ненадлежащее работу приложения.

Android основан на Linux, и каждому приложению на Android назначается другой идентификатор пользователя Linux — или учетная запись пользователя. Это изолирует приложения друг от друга. Если вы рутируете свое устройство, приложения могут покинуть свои пользовательские песочницы и работать с привилегиями root.

Изображение предоставлено: JD Hancock на Flickr

Оцените статью
TutoryBird.Ru
Добавить комментарий