Ezeknek a programoknak az az alapvető célja, hogy a háttérben futó alkalmazásokat és szolgáltatásokat kilőjünk velük, ezzel egy is memóriát szabadítsunk fel. Az utóbbi időkben egyre többen emelik fel a hangjukat a használatuk ellen. Mielőtt mélyebben belemerülnénk a témába, érdemes tisztázni egy pár fogalmat.
De mi is az a memória?
Nem kicsit ledöbbentett az a tény, hogy pár ember (főleg nagyon low-end telefonokon) azért használ task killert, mert "feltelepített pár programot és egyből elfogyott a memóriája". Az első félreértést itt kell tisztázni: A task killerek a RAM-ot hivatottak felszabadítani. A telepített alkalmazások (a cache, SD-re való áthelyezésbe most ne menjünk bele...) a beépített háttértár "data" vagy "userdata" partícióján foglalnak helyet.
Hogy melyikből mennyi van, illetve mennyi foglalt, egyszerűen le tudjuk ellenőrizni. A háttértár állapota (Android 4.0 felett) a Beállítások / Tárhely alatt általában "Belső tárhely" néven található. A RAM-ot a Beállítások / Alkalmazások / Futó menüpont alatt, az alsó sávban. Egyébként ugyan itt tudunk kilőni esetleg befagyott folyamatokat és szolgáltatásokat is.
Folyamat? Szolgáltatás?
Ha a RAM-mizérián túllendültünk, akkor érdemes feltenni egy másik kérdést: Mit szeretnénk leállítani? Android alatt egy program állhat "folyamatokból" (Activity) és szolgáltatásokból (Service).
Egy pár szó a folyamatokról: nagyjából úgy kell őket elképzelni, mint egy ablakot a Windows-ban. Egy programhoz tartozhat több is, ezeknek pedig vannak állapotaik. Az első az inaktív, ilyenkor nem fut, nem csinál semmit, csak a háttértáron figyel. Ha elindítjuk a programot, akkor aktívvá válik, ilyenkor szépen sorban betölti a hozzá tartozó adatokat, képeket, osztályokat, stb... a memóriába, majd megjelenik. Ez egy viszonylag idő- és erőforrásigényes folyamat. Az utolsó állapot, amiről beszélünk a "gyorsítótárazott". Ha például megnyomjuk a "Home" gombot, ugyan az ablak inaktívvá válik, de a memóriában marad. Hogy érthető legyen, ez nagyjából a Windows "tálcára kicsinyítés" funkciójának felel meg. Android alatt ilyenkor a folyamatunk nem csinál semmit, de ha újból szükség van rá, nem kell a háttértárról újra betölteni.
A szolgáltatások kicsit más lapra tartoznak. Ezeknek nincs grafikus felületük és a háttérben futnak (például e-mailt, névjegyzéket szinkronizálnak, zenét játszanak le, szoftverfrissítést ellenőriznek, stb...) Alapvetően két fajta van, az első, amelyik egy programmal indul (például elindítjuk a zenelejátszót, elindítunk egy zenét), egy másik részük a bootoláskor automatikusan indul (pl. Rendszer, Google szolgáltatások)
Hol tudom bezárni? (Avagy az Android memóriakezelési elveiről röviden)
Az, hogy az Android alkalmazásokban az esetek többségében nincs "Bezár" vagy "Kilép" gomb, nem design hiba, vagy az alkalmazás hibája, hanem a rendszer erőforráshasználata miatt kialakult egyik sajátosság. Az Android rendszert úgy alkották meg, hogy a lehető leggyengébb hardveren a lehető legkevesebb erőforrás felhasználásával működjön. A bezárás helyett a gyorsítótárazás (a folyamatok tükrében) az alábbiak miatt alakulhatott ki:
- Egy folyamatot betölteni a háttértárról lassú és erőforrás (CPU, akkumulátor) igényes feladat
- Egy gyorsítótárazott, de inaktív folyamat nem használja a CPU-t
- Egy gyorsítótárazott, de inaktív folyamatot egyszerűbb és gyorsabb aktívvá tenni, mint újból betölteni a háttértárról
- A DRAM memóriák fogyasztása nem függ attól, hogy éppen tárolunk-e bennük érdemleges adatot :)
A szolgáltatások tekintetében kicsit más a helyzet. Első sorban ha egy szolgáltatást leállítunk, akkor az adott program funkciója nem fog működni. Például ha kilőjük egy IM program szolgáltatását, akkor nem kapunk értesítést, ha valaki ránk ír, vagy ha kilőjük a Google Play szolgáltatásait, nem fogunk értesítést kapni a frissítésekről. Itt még egy apróságot érdemes megemlíteni, mégpedig azt, hogy ha ezek után a elindítjuk a csevegőprogramunkat, vagy valami meghívja a Google Play egyik szolgáltatását (pl. van egy widgetünk) akkor a szolgáltatás újra fog indulni. Ilyenkor a jelenség az, hogy pár másodpercre leáll a szolgáltatás, majd megint megjelenik a listában. "Szerencsére" egyes task killerekben van lehetőség mondjuk bizonyos időközönként bezáratni a white listen nem szereplő szolgáltatásokat, ezzel tünetileg kezelve is van a dolog. A háttérben azonban a pár percenként bezáródó és újra megnyíló alkalmazások annak az erőforrásnak a többszörösét emésztik fel, mintha nem csináltunk volna semmit. Itt is érvényes az, mint a folyamatoknál, egy szolgáltatást gazdaságosabb futni hagyni, mint kilépni belőle, betölteni és újra elindítani.
De mi van, ha elfogyott a RAM? Első körben az Android megpróbálja felméri, hogy melyek azok a folyamatok és szolgáltatások, amelyeknek a leállítása nem jár kritikus következményekkel vagy adatvesztéssel, és szépen bezárogatja őket, de erről a felhasználónak (jobb esetben) nem is kell tudnia.
Nagyon kevés memória esetén (egy, a békesség kedvéért inkább meg nem nevezett low-end készüléknél) találkoztam azzal, hogy gyári állapotban beállítottam rajta egy Google-fiókot, majd megnyitottam a Play áruházat. Ezután egy Home gomb megnyomása után fekete képernyő, majd lassú betöltődés fogadott. A tanulság: 256 MB Ram alatt nem fér meg egymás mellett az Android rendszer, a Play áruház és a Launcher.... Szerintem ebben az esetben sem segített volna egy Task Killer...
Nagyon kevés memória esetén (egy, a békesség kedvéért inkább meg nem nevezett low-end készüléknél) találkoztam azzal, hogy gyári állapotban beállítottam rajta egy Google-fiókot, majd megnyitottam a Play áruházat. Ezután egy Home gomb megnyomása után fekete képernyő, majd lassú betöltődés fogadott. A tanulság: 256 MB Ram alatt nem fér meg egymás mellett az Android rendszer, a Play áruház és a Launcher.... Szerintem ebben az esetben sem segített volna egy Task Killer...
A végső megoldás a...
Mint már eddig is kiderülhetett, nagyon nem érdek egyet a task killer alkalmazások használatával. Szerintem a memória azért van egy eszközben, hogy ki legyen használva, sokkal többet számít a gördülékeny működés, mint az, hogy statisztikailag mennyi, még felhasználható RAM ül a telefonban / tabletben.
Az okostelefonok belassulásának általában nagyon sok oka lehet, itt kettőt emelnék ki, ami nagyon gyakran elő szokott fordulni. Az első a hardver gyengesége / minősége. Szerencsére a hardverek drámai módon fejlődnek, így csak annyit tudok tanácsolni, hogy aki most (2013. augusztus végén) szeretne telefont/tabletet venni, az körültekintően járjon utána a SoC-nak és a RAM mennyiségének. Az előbbinél szerintem manapság minimum a két mag, RAM esetében pedig 512 MB-nál kevesebbel semmiképp sem érdemes próbálkozni, de ajánlott az 1 GB.
A másik ok leginkább azokban a júzerekben keresendő, akik nagyon sok (és sok esetben jellemzően gyenge minőségű) appot telepítenek. Ha egy alkalmazás telepítése után hirtelen elkezd a telefon vagy a tablet belassulni, gyorsabban merülni, akkor a hiba mindenképp az alkalmazásban keresendő, ilyenkor megoldja a gondot egy gyors uninstall és egy másik alternatíva keresése.
Nincsenek megjegyzések:
Megjegyzés küldése