Как 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 не използва ресурсите във фонов режим - освен някои RAM - но бързо се възобновява, защото остава кеширан и готов за възобновяване.
Android автоматично управлява процесите
Android прави добра работа за автоматично управление на тези процеси, поради което не се нуждаете от убиец на задачи на Android.
Когато Android се нуждае от повече системни ресурси, първо ще започне да убива най-малко важните процеси. Android ще започне да убива празни и фонови процеси, за да освободи памет, ако сте на изчерпване. Ако се нуждаете от повече памет - например, ако играете особено взискателна игра на устройство без много RAM, Android ще започне да убива процесите на услугата, така че поточната ви музика и изтеглянето на файлове може да спре.
В повечето случаи Android прави всичко това, без да се налага да се притеснявате за това. Android интелигентно използва RAM на устройството за кеширане на приложения и други данни, защото няма смисъл да оставя RAM празна.
Разбира се, Android предоставя приложения с толкова голяма гъвкавост, че те имат място за лошо поведение. Например лошо кодирано приложение може да стартира процес на обслужване, който продължава да работи във фонов режим през цялото време, като използва цялото CPU време и драстично намалява живота на батерията..
Едно интересно нещо, което ще забележите в антивирусни приложения като Avast! за Android е, че антивирусната програма използва икона за уведомяване. ако се опитате да деактивирате иконата за уведомяване, Avast! ще препоръча срещу него. Като има икона за видимо известяване, Avast! прави приложение с по-висок приоритет, което пречи на Android да го разглежда като приложение за фон и да го убива.
Android Apps може да започне в отговор на събития
Приложенията за Android също могат да започнат в отговор на събития. Например, разработчик може да програмира приложението им да се стартира автоматично при стартиране и да стартира услуга във фонов режим. Приложенията могат да стартират в отговор на различни други събития, като например когато правите снимка, когато вашата връзка за данни се промени и т.н. Това позволява на приложенията да извършват действия в отговор на събития, без да работят постоянно във фонов режим.
Управление на процеси
Не трябва да се налага да управлявате процесите ръчно, но има няколко начина да го направите, ако искате. Можете да използвате менюто за многозадачност на Android 4.0 и по-късно, за да направите някои основни процеси за управление. За да го отворите, натиснете специалния бутон за многозадачност на Nexus устройства. На други устройства с Android може да се наложи да натиснете два пъти или да натиснете бутона Home.
Приложенията, показани в менюто, вероятно са в състояние „фонов процес“. Можете да ги убиете, като прекарате приложение отляво или отдясно, което ще го премахне от паметта на устройството ви. Това не би трябвало да е необходимо, но може да ви помогне, когато искате бързо да убиете приложение - може би това е лошо.
Можете също да влезете в екрана с настройки, чукнете Приложения, докоснете приложение и използвайте бутона Принудително спиране, за да убиете неподходящо приложение.
Android е базиран на Linux и всяко приложение на Android е присвоено на друг потребителски идентификатор на Linux или потребителски акаунт. Това изолира приложенията един от друг. Ако изкорените устройството си, приложенията могат да избягат от потребителските си пясъчници и да стартират с root привилегии.
Кредит за изображението: JD Hancock на Flickr