Mítoszok a multitasking és gúnyosság android
Ez a cikk íródott alapul podcast Jurij Trukhina és Eldar Murtazin, amennyiben azokat nem nagyon jól beszélt, hogy multitasking van elrendezve Android és miért „taskmenedzhery”. Az Android-ban végzett többfeladatok ugyanazok, mint a WP7 Mango következő frissítésében. a megvalósítás részleteiről és az építészeti megoldások nevéről. Helytelen megértése multitasking Android találkozom elég gyakran, és azt hiszem, hogy sok szempontból a Google borokat, nem tudnak megfelelően elmagyarázni az átlagos felhasználó, mint minden belső van elrendezve, és a Task Manager'y többnyire inkább káros, mint hasznos.
Részben, de van egy finom pont. Az a tény, hogy minden Android program moduláris. Vagyis a program olyan darabokból áll, amelyek egymástól függetlenül működnek (kivéve, ha kifejezetten más modult hívsz). A program memóriájában való jelenléte nem jelenti azt, hogy jelenleg mindent használnak. A program nem hajthat végre semmilyen kódot, hanem egyszerűen felakasztja a memóriát, mert van memória, és miért nem tartja meg az alkalmazást a gyorsítótárban, így a későbbi aktiválás gyorsabbá válik. Természetesen, ha más alkalmazásokhoz van szükség a memóriára, a leginkább szükségtelen (van egy prioritási rendszer) lesz betöltve. Ez ugyanaz, mint a "temetés" fogalma a WP7-ben. Ebben az esetben a "Feladatkezelők" egyszerűen csak károsak, mivel eltávolítják az alkalmazásokat, majd újra betöltődnek, és erőforrásokat és időt veszítenek el.
De mégis van egy bizonyos igazság, és most elmondom, miért.
Ez a technikai rész, leírja az Android-programok architektúráját. De szeretnék beszélni a belső eszközről, hogy az olvasók megértsék az operációs rendszer eszközét.
Androidban a program minden modulja három fő típusra oszlik:
A zenelejátszó virtuális példájáról részletesebben tárgyalok.
Ez az alkalmazásunk ablak. Egy ablak - egy aktív. Képzeletbeli zenelejátszóunkban egy ablak jelenik meg a dal nevével, az ablak a vezérlőkkel és az album képe. Élettartamuk nagyon rövid, ha átvált egy másik ablak (még ugyanabban a kérelem), akkor minden szünetel, és egy idő után az összes erőforrás szabadul fel, és activiti megölték. Vagyis a háttérben semmi sem húzódik és nem vonható le. Miután átváltottál a lejátszóról, ahol volt egy jó hangszínszabályozó, nem kell aggódnod, hogy ez a hangszínszabályozó továbbra is valahol a háttérben húzódik, ez már nem több. A kérelem ezen része egyáltalán nem működik.
Ha az alkalmazás csak aktiválásokból áll (például számológép), akkor amikor átváltunk róla - már nem forrja az erőforrásokat. Csak csendben ül - békésen a gyorsítótárban, várva, hogy térjen vissza.
Broadcast vevőkészülékek
Itt nehézségekbe ütköztem a szó szokásos fordítását oroszul, mivel a szó szerinti "üzenetszórók" meglehetősen ügyetlennek tűnnek, ki fogok lépni a helyzetből.
Ez a modul pontosan addig él, amíg egy üzenetet feldolgoz a rendszerből. Az alkalmazás továbbra is lóg a memóriában, ha a rendszer még egy ilyen üzenetet küld, és az alkalmazás újraindítása helyett már a memóriában van, feldolgozásra kész.
De itt a trükkök az erőforrás-fogyasztással kezdődnek. Ha az alkalmazás bejegyzésre kerül, hogy globálisan (a manifesztben) fogadja az üzeneteket, akkor a rendszer mindig futtatja és megöli egy "taskmender" -el - káros és haszontalan. Az alkalmazás azonban beprogramozhatja magát események fogadására, majd futni fog. Például, a zenelejátszónak eseményeket kell kapnia a fejhallgatóból, hogy szabályozhassa a lejátszást és szüneteltesse a hívást. Ha nem fut, akkor ezek az események nem fontosak, nem reagál rájuk.
Tehát az erőforrások legfontosabb fogyasztójához jöttünk. Szolgáltatások, ez a program része, amely a háttérben kell működnie, és pontosan erre és semmi másra nem tervezett. Ezek a legkisebb blokkok, amelyek az Android, az iOS és a WP7 Mango többfeladatos végrehajtásával működnek együtt.
Ezek a szolgáltatások a szinkronizálás, frissítések, letöltések. Zenelejátszónak zenét kell játszania, ezért a szolgáltatásnak kell lennie! Hívás közben a beszélgetésért felelős program olyan része, amely a beszélgetéshez szükséges, és a felhasználó éppen Angry Birds-t játszhat.
Valójában ezek az erőforrások legfontosabb felhasználói, de nagyon nehéz meghatározni őket, jobb, ha rájuk nézzük az alkalmazások szabványos beállításait (futási szolgáltatások).
De az Android is képes megölni a szolgáltatásokat a memóriahiány miatt is, bár elsőbbségük van az életen át, ami meglepő, majd megpróbálja újra elindítani őket, hogy mindent vissza tudjon hozni. A legfontosabb prioritás az olyan szolgáltatások számára, amelyeken egy ikon található az állapotsorban, hogy milyen buta hangzik. Egyszerűen, ezek a szolgáltatások megmutatják felhasználóiknak, hogy léteznek és működnek, és az Android tartja őket az utolsóig. Ezért van az, hogy a legtöbb zenész lejátszó ikonot rajzol az állapotsoron, ilyen például a fülű architektúra.
Általában, ha WP7 megy bele a részletekbe, van végrehajtás más, de ha megnézi szemével a felhasználó, akkor a feladat ugyanaz lesz: egy kis része az alkalmazás, ami egy meghatározott részét a munka.
következtetés
Fontos megérteni, hogy az alkalmazások különböző részekkel rendelkezhetnek, különböző tulajdonságokkal, és alkalmazás megölésével kényszerítheti a rendszert, hogy újratöltse. A megölés csak könyörtelenül írt alkalmazásokra érdemes (igen, egy mérsékelt piacon elégségesek). Ugyanakkor csak apró programok működnek, minden más rész jól alszik, és semmilyen módon nem befolyásolja a rendszer működését.