Домашня » як » Як Android управляє процесами

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

    Windows дозволяє працювати настільними програмами незалежно від їх видимості чи ні, в той час, коли iOS від Apple лише дозволяють програмам виконувати кілька обмежених завдань у фоновому режимі. 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