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

Оглавление:

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

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

Видео: Как Android управляет процессами
Видео: #4: React Pizza — разработка интернет-магазина (for junior) - YouTube 2024, Ноябрь
Anonim
Windows позволяет настольным приложениям оставаться включенными независимо от того, видны они или нет, в то время как iOS от Apple позволяет приложениям выполнять несколько ограниченных задач в фоновом режиме. Android находится где-то посередине - приложения, запущенные на переднем плане, имеют приоритет, но приложения имеют гораздо больше свободы для работы в фоновом режиме, чем в iOS.
Windows позволяет настольным приложениям оставаться включенными независимо от того, видны они или нет, в то время как iOS от Apple позволяет приложениям выполнять несколько ограниченных задач в фоновом режиме. Android находится где-то посередине - приложения, запущенные на переднем плане, имеют приоритет, но приложения имеют гораздо больше свободы для работы в фоновом режиме, чем в iOS.

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

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

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

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

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

Image
Image

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

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

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

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

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

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

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

Image
Image

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

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

Image
Image

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

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

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

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

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

Рекомендуемые: