Android memóriakezelés

A kezdet

Pár hónapja vettem egy Sony Ericsson Xperia X10-es telefont. Eddig szinte csak Symbian-os vagy S40-es Nokiáim voltak, de a technológiai fejlődés megállíthatatlanul utat tört magának és nekem is lépést kellett tartanom a korra. Hosszas mérlegelés után döntöttem ennél a készüléknél és operációs rendszernél.

Idő szülte érdeklődés

Akinek hozzám hasonlóan ez egy ismeretlen terep, az gyorsan belefuthat a sokak által használt „Task killer” programokba. Én is így voltam ezzel, mindenki javasolta, hogy szükséges és kell. De ahogy egyre jobban elmélyedtem ebben a témában kiderült, hogy nem csak szükségtelen de még kis mértékben káros is. Káros a telefon készenléti idejére, ugyanis az alkalmazások újraindítása megterheli a telefont (processzor, akkumulátor használat növekedés az alkalmazások újraindításakor). Miután kilőttem egy csomó task-ot kisvártatva ismét elindult majdnem mind újra. Sajnos erre a problémára nem igazán találtam választ (magyar oldalakon) sehol. Ezért úgy döntöttem megosztom ezt az infromáció kissé konyhanyelven, hogy más ne szívjon annyit mint én.

Megoldás

A kérdésemre a választ itt találtam meg. Mivel ezen az oldalon minden le van írva ezért én itt csak kivonatolom az olvasottakat. A régebbi (1.5 és 1.6) Android rendszerek esetében még nem volt teljesen tökéletes a memória kezelése, ott még volt értelme task killert használni. Viszont a 2.1 és 2.2 (és fölött) már szinte semmi haszna nincs. Egyszerűen fogalmazva a rendszer mindig annyi memóriát szabadít fel magának amennyire szüksége van, intelligensen a következő módon. A memóriában tárolt programok 5 csoportra vannak bontva melyek a következők:

Android memóriakezelés

  1. Active processes (Aktív folyamatok) – Ez a éppen használat, látható folyamatok, mondjuk egy e-mail írása.
  2. Visible processes („Látható” folyamatok) – Ezek is szem előtt vannak még (widget mondjuk), de itt nincs interakció a felhasználó és a program között.
  3. Started Service Processes (Szervizek) – Ezek már olyan folyamatok melyek a háttérben futnak, nincs interakció a felhasználóval és nem is láthatóak. Kisebb az erőforrás igényük is ezáltal.
  4. Background processes (Háttér folyamatok) – Ezek a szerviz nélküli, háttérbe tett folyamatok. Ezek olyan folyatok amelyekből már „gyomlálhat” a rendszer. A legrégebben „látott” folyamatot törli először ha szükség van erőforrásra.
  5. Empty processes („Üres” folyamatok) – Ez az egyszer már elindított, de azóta bezárt folyamatok. Azért vannak a memóriában, hogy ha legközelebb szükség lenne rájuk, akkor sokkal gyorsabban be tudnak töltődni (el tudnak indulni), mintha ezt a memória kártyáról tennék. Itt is igaz a legrégebben „látott” (leállított) folyamatot veszi ki először a memóriából a rendszer ha erőforrást kell felszabadítania.

Bővebb, angol nyelvű leírás itt olvashatjátok (fentebb is linkelt): http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/

Remélem tudtam segíteni egy kicsit az Android memóriakezelés megértésében.

One thought on “Android memóriakezelés

  1. Visszajelzés: Android szabad RAM – mennyi az annyi? | ArnoldWEBlog

Hozzászólások lehetősége itt nem engedélyezett.