AW Special: De zin en onzin van Taskkillers in Android

AW Special: De zin en onzin van Taskkillers in Android

Introductie

Windows Mobile

Je wil nu een spelletje gaan spelen dat meer RAM verbruikt dan er eigenlijk beschikbaar is. In Windows Mobile zou je nu een melding krijgen dat je niet genoeg geheugen beschikbaar hebt. Omdat het RAM dat door Google Maps en Opera is geclaimt ook echt niet beschikbaar is. Het RAM is van hen en daar kom je niet aan, geen alternatief mogelijk.

Android

Als je in Android apps gebruikt, blijven ze standaard in je geheugen zitten, waarom dit gebeurt volgt verderop. Maar nu eerst wat er gebeurt als jij je spelletje start. De geheugenbeheerder kijkt naar de apps die nog in het RAM staan. Hij ziet dat de browser niet actief is, maar ook dat de browser niet genoeg geheugen vrij zal maken. Google Maps daarentegen zou precies genoeg geheugen vrijmaken. De geheugenbeheerder stuurt dan een afsluitverzoek naar Google Maps en als dat lukt kan je spelletje gewoon beginnen. In werkelijkheid gaat het iets complexer, omdat de geheugenbeheerder met meerdere factoren rekening houdt. Het voordeel van dit systeem is dat de gebruiker nooit geconfronteerd wordt met het sluiten van apps.

Waarom zo ingewikkeld?

Hoe werkt een taskkiller dan?

Maar ze werken toch ook echt? Ik merk het zelf!

Hoe werkt Android dan precies?

In principe spreekt het diagram voor zich, maar voor degene die iets meer moeite met Engels hebben een korte uitleg: Een app is opgebouwd uit allerlei activities die passen bij bepaalde acties. Alle onActie() vakjes zijn activiteiten die bij Actie worden uitgevoerd. Dus als je een app voor de eerste keer opstart, worden vervolgens onCreate(), onStart() en onResume() uitgevoerd. Als jij terwijl je in de app zit een smsje krijgt zal voor de app onPause() worden aangeroepen. In onPause() worden de dingen die je aan het doen was opgeslagen zodat jij niks verliest. Zodra jij klaar bent met smsen en je gaat terug naar de app wordt alleen onResume() aangeroepen, 2 stappen minder dat het starten van de totale app! Als je klaar bent in je app en naar je homescreen gaat wordt onStop() aangeroepen. Deze activiteit is meestal iets drastischer in het opslaan van gegevens waar je mee bezig was en zorgt er in sommige gevallen voor dat je bij het opnieuw opstarten van de app weer bij het beginscherm komt. Wel wordt er programmacode in het geheugen gehouden. Zolang je geen andere apps opstart, blijft de programmacode van de app in het geheugen staan, pas als jij een nieuwe app opent die meer geheugen nodig heeft, wordt er gekeken of de apps in het geheugen vrijgemaakt kunnen worden.

Conclusie

Het is dus in principe niet nodig om Taskkillers dagelijks te gebruiken, natuurlijk zijn er wel situaties waarin ze handig zijn. Als een developer zijn app bijvoorbeeld niet op de correcte manier heeft opgebouwd, kan het voorkomen dat er onbedoeld een programma blijft draaien. Een van de bekende voorbeelden is een app die internetverbinding probeert te maken terwijl er geen (3)g(prs) verbinding is. Als deze app niet correct is opgebouwd zal deze constant tevergeefs proberen een internetverbinding te maken en daardoor je batterij leegslurpen. Dit artikel kijkt alleen naar de feature van Taskkillers om het geheugen vrij te maken omdat services over het algemeen niet zomaar gestart worden. Services zorgen er voor dat apps elk uur kunnen updaten, notificaties kunnen verzenden en (zoals Locale) instellingen kunnen wijzigen op bepaalde momenten. Zodra je services moet gaan stoppen is er of iets mis met de app die de service start of het is een instelling die je gewoon in de app zelf kan aanpassen. Ook developers geven steeds meer aan dat ze issues niet meer behandelen als deze voorkomen als je een taskkiller gebruikt!

Meer leesvoer:

Lees meer over:
AW Special

Plaats reactie

666

0 reacties

Laad meer reacties

Je bekijkt nu de reacties waarvoor je een notificatie hebt ontvangen, wil je alle reacties bij dit artikel zien, klik dan op onderstaande knop.

Bekijk alle reacties