Kérdés:
Hogyan marad a WhatsApp a háttérben anélkül, hogy bezárnák?
Theturtguy
2016-03-26 14:50:11 UTC
view on stackexchange narkive permalink

Az Android általában megöli a háttérfolyamatokat, ha nem kapnak állandó értesítést. Miért nem ölnek meg olyan alkalmazásokat, mint a WhatsApp és a Facebook?

Mivel egy olyan szolgáltatást működtetnek, amire azt mondanám :) Nem használok WA-t vagy FB-t, ezért itt nem lehetek biztos: A prioritásuk növelése érdekében az alkalmazások regisztrálhatnak egy szolgáltatást, és az ikon megjelenik az értesítési tálcán, így az OOM gyilkos "fontosabbnak" tartja őket, és "más dolgokat megöl helyettük", ha lehetséges.
Azt hiszem, hogy nincs ikon a tálcán (a WA-mnak egyébként sincs). Amíg a szolgáltatás fut, mint egy "szolgáltatási folyamat" * vagy magasabb * prioritás.
Egy válasz:
AADAndroidEnthusiasts
2016-03-27 18:27:36 UTC
view on stackexchange narkive permalink

Az Android általában megöli a háttérfolyamatokat, ha nincs folyamatos értesítésük.

Leggyakrabban ez a helyzet, de az Android OutOfMemory Killer (az Android összetevője, amely felelős a folyamatok megöléséért) meglehetősen összetett logikát és kritériumokat alkalmaz az alkalmazások és folyamatok megölésére, amelyek ezeket az alkalmazásokat tárolják.

Android-ban minden alkalmazás Linux-folyamatban fut. Minden Linux-folyamatban van egy virtuális gép (Dalvik virtuális gép vagy ART virtuális gép). Van egy korlát a memória számára, amelyet egy folyamat megkövetelhet, és ez különböző a különböző eszközöknél, és különbözik a telefonok és a táblagépek esetében is.

Ha az Androidon kevés a memóriaterület (lehet, hogy annyi alkalmazás fut egyszerre egy eszközön), az OutOfMemory gyilkos képbe kerül, és megkezdi a háttérben erős > először.

Most például az olyan alkalmazások, mint a WhatsApp, a Facebook úgynevezett Service and Push értesítési mechanizmusokat használnak. A szolgáltatás lehetővé teszi az alkalmazás számára, hogy a háttérben futó bizonyos kódokat futtasson, és annak ellenére, hogy az alkalmazást az OOM Killer megöli, az Android újraindíthatja a szolgáltatást, ha elegendő memória áll rendelkezésre a futtatásához.

Miért nem ölnek meg olyan alkalmazásokat, mint a WhatsApp és a Facebook?

Ez nem igaz, mivel az Android az állapotuk (például az előtér vagy a háttér). Csak arról van szó, hogy az alkalmazásokat és azok összetevőit (például a Szolgáltatást) újraindítják, amikor push értesítéseket kapnak, hogy a felhasználó interakcióba léphessen az alkalmazással.

Tehát, amikor és mikor érkezik a push értesítés ( jelentése WhatsApp üzenet), az Android újraindíthatja az elölt alkalmazás összetevőjét (ebben az esetben a WhatsApp programot).

Így az Android elrejti a memóriakezelés és a folyamatkezelés összetett részleteit a felhasználók elől, és biztosítja, hogy a felhasználó probléma nélkül léphessen kapcsolatba egy alkalmazással.

Van-e mód a WhatsApp fontossági sorrendjére a facebook helyett, pl. a tasker segítségével először megölni valamit, hogy megakadályozza az OOMK-t egy másik alkalmazás megölésében? Hallom, hogy a feladatkezelők rosszak, de kívánatosnak tűnik az ilyen típusú megkerülés?
Ennek a válasznak szép magyarázata van!Van-e hivatalos linkje a logika megerősítésére?
Ezt a választ androidos fejlesztőként szerzett tapasztalataim alapján írtam - rengeteg dokumentáció létezik annak feltárására, hogy az OOM Killer hogyan működik, és az egyszerű google keresés segíteni fog a kezelésében.Ezeket a linkeket nem azért tettem közzé a bejegyzésemben, hogy egyszerű és érthető legyen a laikusok számára, és ne a fejlesztői szempontok szerint.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...