Hoe Android processen beheert
Windows laat desktop-apps actief blijven, of ze nu zichtbaar zijn of niet, terwijl Apple's iOS alleen apps toestaat om een paar beperkte taken op de achtergrond uit te voeren. Android zit ergens tussenin - apps op de voorgrond hebben prioriteit, maar apps hebben veel meer vrijheid op de achtergrond dan op iOS.
We zullen een blik werpen op precies hoe Android de apps en processen beheert die op uw telefoon of tablet worden uitgevoerd, wat demystificeert wat er op de achtergrond gebeurt..
De proces lifecycle-hiërarchie
Een Android-proces kan zich op elk moment in een van de vijf verschillende staten bevinden, van het belangrijkste tot het minst belangrijke:
- 1. Voorgrondproces: De app die u gebruikt, wordt beschouwd als het voorgrondproces. Andere processen kunnen ook worden beschouwd als voorgrondprocessen, bijvoorbeeld als ze communiceren met het proces dat zich op dit moment op de voorgrond bevindt. Er zijn slechts een paar voorgrondprocessen op een bepaald moment.
- 2. Zichtbaar proces: Een zichtbaar proces staat niet op de voorgrond, maar heeft nog steeds invloed op wat u op uw scherm ziet. Het voorgrondproces kan bijvoorbeeld een dialoogvenster zijn waarmee u een app erachter kunt zien - de app zichtbaar op de achtergrond zou een zichtbaar proces zijn.
- 3. Serviceproces: Een serviceproces is niet gekoppeld aan een app die zichtbaar is op uw scherm. Het doet echter iets op de achtergrond, zoals het afspelen van muziek of het downloaden van gegevens op de achtergrond. Als u bijvoorbeeld muziek begint te spelen en overschakelt naar een andere app, wordt het afspelen van de achtergrond op de achtergrond afgehandeld door een serviceproces.
- 4. Achtergrondproces: Achtergrondprocessen zijn momenteel niet zichtbaar voor de gebruiker. Ze hebben geen invloed op de beleving van het gebruik van de telefoon. Op een gegeven moment zijn er veel achtergrondprocessen actief. Je kunt deze achtergrondprocessen beschouwen als "gepauzeerde" apps. Ze worden in het geheugen bewaard, zodat je ze snel kunt gebruiken wanneer je teruggaat, maar ze gebruiken geen kostbare cpu-tijd of andere bronnen zonder geheugen.
- 5. Leeg het proces: Een leeg proces bevat geen app-gegevens meer. Het kan worden bewaard voor cachedoeleinden om app-lanceringen later te versnellen, of het systeem kan het indien nodig doden.
Stel dat u uw telefoon inschakelt en een muziek-app opent. Terwijl u het gebruikt, wordt de muziek-app een voorgrondproces. Wanneer u muziek begint te spelen en de muziek-app verlaat, blijft de muziek spelen als een serviceproces.
Laten we Angry Birds als een ander voorbeeld bekijken. Angry Birds zou een voorgrondproces zijn terwijl je het aan het spelen was. Wanneer je Angry Birds verlaat en de Gmail-app opent om je e-mail te bekijken, wordt Angry Birds een achtergrondproces (omdat het niets op de achtergrond hoeft te doen), terwijl Gmail het proces op de voorgrond wordt. Wanneer je teruggaat naar Angry Birds, wordt dit je voorgrondproces en wordt het spel snel hervat. Angry Birds gebruikte geen bronnen op de achtergrond - afgezien van wat RAM - maar het wordt snel hervat omdat het in de cache bleef en klaar was om te hervatten.
Android beheert automatisch processen
Android doet het goed deze processen automatisch te beheren, daarom hebt u geen taakmoordenaar nodig op Android.
Wanneer Android meer systeembronnen nodig heeft, zal het eerst de minst belangrijke processen gaan doden. Android begint lege en achtergrondprocessen te doden om geheugen vrij te maken als je bijna leeg bent. Als u meer geheugen nodig heeft, bijvoorbeeld als u een bijzonder veeleisende game speelt op een apparaat zonder veel RAM, zal Android serviceprocessen gaan doden, zodat uw streaming muziek en bestandsdownloads kunnen stoppen.
In de meeste gevallen doet Android dit allemaal zonder dat u zich daar zorgen over hoeft te maken. Android maakt op intelligente wijze gebruik van het RAM-geheugen van je apparaat voor het cachen van apps en andere gegevens, omdat het geen zin heeft om je RAM-geheugen leeg te laten.
Uiteraard biedt Android apps zoveel flexibiliteit dat ze de ruimte hebben om zich te misdragen. Een slecht gecodeerde app kan bijvoorbeeld een serviceproces starten dat de hele tijd op de achtergrond draait, waarbij alle CPU-tijd wordt verbruikt en de levensduur van de batterij aanzienlijk wordt verkort.
Een interessant ding dat je zult opvallen in antivirus-apps zoals Avast! voor Android is dat de antivirus-app een meldingspictogram gebruikt. als u het meldingspictogram probeert uit te schakelen, is Avast! zal het aanbevelen. Door een zichtbaar meldingspictogram te hebben, heeft Avast! maakt zichzelf een app met hogere prioriteit, waardoor Android het niet als een app op de achtergrond beschouwt en doodt.
Android-apps kunnen starten als reactie op gebeurtenissen
Android-apps kunnen ook worden gestart als reactie op gebeurtenissen. Een ontwikkelaar kan bijvoorbeeld zijn app zodanig programmeren dat deze automatisch wordt uitgevoerd bij het opstarten en een service op de achtergrond uitvoert. Apps kunnen worden gestart als reactie op verschillende andere gebeurtenissen, zoals wanneer u een foto maakt, wanneer uw gegevensverbinding wordt gewijzigd, enzovoort. Hierdoor kunnen apps acties uitvoeren als reactie op gebeurtenissen zonder constant op de achtergrond te worden uitgevoerd.
Processen beheren
Het is niet nodig om processen handmatig te beheren, maar er zijn een paar manieren om het te doen als je wilt. U kunt het multitasking-menu op Android 4.0 en later gebruiken om basisprocesbeheer uit te voeren. Tik om toegang te krijgen op de speciale multitasking-knop op Nexus-apparaten. Op andere Android-apparaten moet u mogelijk twee keer tikken of drukt u lang op de startknop.
Apps die in het menu worden weergegeven, bevinden zich waarschijnlijk in de status 'Achtergrondproces'. Je kunt ze doden door een app naar links of rechts te vegen, waardoor deze uit het geheugen van je apparaat wordt verwijderd. Dit zou niet nodig moeten zijn, maar kan helpen als je snel een app wilt doden - misschien is het slecht.
U kunt ook naar het scherm Instellingen gaan, op Apps tikken, op een app tikken en de knop Force stop gebruiken om een app die het niet goed doet te doden.
Android is gebaseerd op Linux en elke app op Android is toegewezen aan een ander Linux-gebruikers-ID - of gebruikersaccount. Dit isoleert apps van elkaar. Als u uw apparaat rooit, kunnen apps aan hun gebruikerssandboxen ontsnappen en met rootprivileges werken.
Image Credit: JD Hancock op Flickr