Android task-killer ļaunums

Sep 23, 2011
3 minūtes

Vakar dzirdēju man nīstamu vārdu “task killer”, un izdomāju ātri uzrakstīt nelielu aprakstu par to, kāpēc task-killeri ir ļaunums.

Android pasaulē ir sarakstīts ļoti daudz programmu nositēju Android sistēmai. Izplatītākais iemesls tādus lietot ir palielināt sistēmas ātrumu un samazināt strāvas patēriņu. Lai gan ir situācijas, kad šādas darbības ir samērā efektīvas, lielākoties tās tikai kaitē. Android sistēmai no pirmsākumiem ir ļoti labs un kvalitatīvs procesu pārvaldības mehānisms, kas nodrošina apmēram sekojošo:

  • Android pats automātiski izbeigs programmu, ja tā ir pabeigusi darīt ko tai vajadzēja, vai kad sistēmai vajag vairāk atmiņas kādiem citiem uzdevumiem;
  • Android pats automātiski izbeigs programmu, ja lietotājs ilgi nav to lietojis;
  • Android iesaldē programmas, atstājot tās atmiņā, ja tās netiek izmantotas, bet sistēmā ir gana daudz brīvās atmiņas.

Jāņem vērā, ka Android (un vispār Linux) atmiņas pārvaldības mehānisms ir krietni atšķirīgs no Windows. Pati galvenā tēze ir: jo vairāk atmiņas ir aizņemts, jo labāk, ātrāk un stabilāk sistēma strādā, jo atmiņā tiek saglabāts gan tas, kas varētu noderēt nākotnē, gan arī diska kešs un daudz kas cits. Turklāt baterijas patēriņš nemainās, lai cik atmiņa nebūtu pilna.

Task-killer traucē sistēmas darbībai sekojošu iemeslu dēļ:

  • task-killer pats ir fona process, kas pats patērē atmiņu un regulāri patērē procesora resursus;
  • task-killer atbrīvo atmiņu no procesiem, tādējādi palēninot to atkārtotu ielādi (kad programma tiek palaista nākamreiz) un patērējot resursus uz to nolasīšanu un palaišanu;
  • ja izbeigtā programma tobrīd darīja kaut ko, vai bija vajadzīga sistēmai, tā tiks ielādēta vēlreiz, tiklīdz tā būs nepieciešama vēlreiz, tādējādi palēninot darbu un patērējot resursus uz tās nolasīšanu un palaišanu;
  • ja tika izbeigts fona process, kas nodarbojās ar kādu svarīgu uzdevumu (piemēram, saņēma SMS, e-pastus, ziņoja par kādiem notikumiem), par kuru sistēma neko nezināja, lietotājs var nesaņemt kādas ziņas vai paziņojumus, kā arī citi procesi var sākt strādāt nepareizi.

Jā, protams, ir gadījumi, kad ir nepieciešamība kādu procesu izbeigt: piemēram, kad tas ir uzkāries, vai arī lietotājs vēlas to pārstartēt, taču šīs darbības nav vajadzības veikt bieži, un tās pilnīgi noteikti nav automatizējamas.

Startējot, Android sistēma ielādē ļoti daudz programmu, cerībā uzlabot lietotāja pieredzi (proti, lietotājs novēros, ka palaistās programmas startējas momentāli), bet diemžēl bieži vien gadās, ka šīs programmas reāli nav vajadzīgas lietotājam. Un tā jau ir pavisam cita problēma… Tāpēc liekas programmas ir jāatinstalē! Tiesa gan, bieži vien esmu redzējis Android telefonus ar kaudzi preinstalētu programmu (līdzīgi kā brand-name datoros), ko reizēm pat nevar kārtīgi atinstalēt, un tās bremzē visu sistēmu, jo fonā visu laiku kaut ko dara. Lai to izdarītu, jāizmanto “startup manager” klases programmas, kas neļauj sistēmai palaist liekās lietas, vai arī vispār jānorūto telefons un jāizdzēš viss liekais.