Як Android керує процесами

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

Ми розглянемо, як саме Android управляє додатками і процесами, запущеними на вашому телефоні або планшеті, і показує, що відбувається у фоновому режимі.


Ієрархія життєвого циклу процесу

Процес на Android може перебувати в одному з п'яти різних станів у будь-який момент часу, від найважливішого до найменш важливого:

  • Процес переднього плану: програма, яку ви використовуєте, вважається процесом переднього плану. Інші процеси також можуть розглядатися як процеси переднього плану - наприклад, якщо вони взаємодіють з процесом, який в даний час знаходиться на передньому плані. Є тільки кілька процесів переднього плану в будь-який момент часу.
  • Видимий процес: видимий процес не знаходиться на передньому плані, але все ще впливає на те, що ви бачите на екрані. Наприклад, процес переднього плану може бути діалоговим вікном, яке дозволяє вам бачити програму позаду нього - програма, видима в фоновому режимі, буде видимим процесом.
  • Сервісний процес: сервісний процес не прив'язаний ні до якої програми, яка відображається на вашому екрані. Тим не менш, він робить щось у фоновому режимі, наприклад, відтворення музики або завантаження даних у фоновому режимі. Наприклад, якщо ви починаєте відтворювати музику і перемикаєтеся на іншу програму, відтворення музики відбувається у фоновому режимі і обробляється сервісним процесом.
  • Фоновий процес: фонові процеси в даний час не видно користувачеві. Вони не впливають на досвід використання телефону. У будь-який момент часу багато фонових процесів в даний час працюють. Ви можете думати про ці фонові процеси як про «призупинені» програми. Вони зберігаються в пам'яті, тому ви можете швидко відновити їх використання, коли повернетеся до них, але вони не використовують цінний процесорний час або інші ресурси, не пов'язані з пам'яттю.
  • Порожній процес: порожній процес більше не містить даних програми. Він може зберігатися в цілях кешування, щоб прискорити запуск програм пізніше, або система може знищити його при необхідності.

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

Давайте подивимося на 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.


COM_SPPAGEBUILDER_NO_ITEMS_FOUND