9Sep

Hvordan Android styrer processer

Windows gør det muligt for stationære apps at køre, uanset om de er synlige eller ej, mens Apples iOS kun tillader apps at udføre nogle få begrænsede opgaver i baggrunden. Android sidder et sted imellem - apps, der kører i forgrunden, prioriteres, men apps har meget mere frihed til at køre i baggrunden, end de gør på iOS.

Vi tager et kig på, hvordan Android styrer de apps og processer, der kører på din telefon eller tablet, og destabiliserer, hvad der foregår i baggrunden.

Process Lifecycle Hierarchy

En proces på Android kan være i en af ​​fem forskellige tilstande til enhver tid, fra vigtig til mindst vigtig:

  • 1. Forgrundsproces : Den app, du bruger, betragtes som forgrundsprocessen. Andre processer kan også betragtes som forgrundsprocesser - for eksempel hvis de interagerer med den proces, der for øjeblikket er i forgrunden. Der er kun et par forgrundsprocesser på et givent tidspunkt.
  • 2. Synlig proces : En synlig proces er ikke i forgrunden, men påvirker stadig det, du ser på skærmen. Forgrundsprocessen kan f.eks. Være en dialog, der giver dig mulighed for at se en app bag den - den app, der er synlig i baggrunden, ville være en synlig proces.
  • 3. Serviceproces : En serviceproces er ikke knyttet til nogen apps, der er synlige på skærmen. Det gør dog noget i baggrunden, som f.eks. Afspilning af musik eller download af data i baggrunden. Hvis du for eksempel begynder at afspille musik og skifte til en anden app, er musikafspillingen i baggrunden håndteret af en serviceproces.
  • 4. Baggrundsproces : Baggrundsprocesser er i øjeblikket ikke synlige for brugeren. De har ingen indflydelse på oplevelsen af ​​at bruge telefonen. På et givet tidspunkt kører mange baggrundsprocesser i øjeblikket. Du kan tænke på disse baggrundsprocesser som "pausede" apps. De er gemt i hukommelsen, så du hurtigt kan genoptage at bruge dem, når du går tilbage til dem, men de bruger ikke værdifuld CPU-tid eller andre ikke-hukommelsesressourcer.
  • 5. Tøm proces : En tom proces indeholder ikke længere appdata. Det kan blive opbevaret til caching formål for at fremskynde app lanceringer senere, eller systemet kan dræbe det efter behov.

Lad os f.eks. Sige, at du tænder din telefon og åbner en musikapp. Mens du bruger det, vil musikappen være en forgrundsproces. Når du begynder at afspille musik og forlade musikappen, fortsætter musikken med at spille som en serviceproces.

Lad os se på Angry Birds som et andet eksempel. Angry Birds ville være en forgrundsproces, mens du spillede det. Når du forlader Angry Birds og indtaster Gmail-appen for at se din e-mail, bliver Angry Birds en baggrundsproces( fordi det ikke behøver at gøre noget i baggrunden), mens Gmail bliver forgrundsprocessen. Når du skifter tilbage til Angry Birds, bliver det din forgrundsproces, og spillet genoptages hurtigt. Angry Birds brugte ikke ressourcer i baggrunden - bortset fra noget RAM - men det genoptages hurtigt, fordi det forblev cachelagret og klar til at genoptage.

Android administrerer automatisk processer

Android gør et godt stykke arbejde med automatisk styring af disse processer, og derfor behøver du ikke en task killer på Android.

Når Android har brug for flere systemressourcer, begynder det først at dræbe de mindst vigtige processer. Android vil begynde at dræbe tomme og baggrundsprocesser for at frigøre hukommelse, hvis du kører lavt. Hvis du har brug for mere hukommelse - for eksempel, hvis du spiller et særligt krævende spil på en enhed uden meget RAM, begynder Android at dræbe serviceprocesser, så dine streaming musik og filer kan stoppe.

I de fleste tilfælde gør Android det hele uden at skulle bekymre sig om det. Android bruger intelligent enhedens RAM til at cache apps og andre data, fordi der ikke er noget punkt i at lade dit RAM være tomt.

Selvfølgelig giver Android apps med så stor fleksibilitet, at de har plads til at fejle. For eksempel kan en dårlig kodet app starte en serviceproces, der stadig kører i baggrunden hele tiden, ved at bruge hele din CPU-tid og reducere batteriets levetid dramatisk.

En interessant ting, du vil se i antivirusprogrammer som Avast!for Android er det, at antivirusprogrammet bruger en meddelelsesikon.hvis du forsøger at deaktivere meddelelsesikonet, er Avast!vil anbefale imod det. Ved at have et synligt noteringsikon, Avast!gør sig selv højt prioriteret app, forhindrer Android fra at betragte det som en baggrundsapp og dræbe den.

Android Apps kan starte som svar på arrangementer

Android apps kan også starte som reaktion på arrangementer. For eksempel kan en udvikler programmere deres app til at køre automatisk ved opstart og køre en tjeneste i baggrunden. Apps kan starte som reaktion på en række andre begivenheder, f.eks. Når du tager et billede, når din dataforbindelse ændres osv. Dette gør det muligt for apps at udføre handlinger som reaktion på begivenheder uden løbende løbende i baggrunden.

Administrerende processer

Du behøver ikke at administrere processer manuelt, men der er et par måder at gøre det, hvis du vil. Du kan bruge multitasking-menuen på Android 4.0 og nyere til at gøre nogle grundlæggende processtyring. For at få adgang til det skal du trykke på den dedikerede multitasking-knap på Nexus-enheder. På andre Android-enheder skal du muligvis dobbeltklikke eller trykke langsomt på knappen Hjem.

Apps, der vises i menuen, er sandsynligvis i tilstanden "baggrundsproces".Du kan dræbe dem ved at skubbe en app til venstre eller højre, som fjerner den fra enhedens hukommelse. Dette skal ikke være nødvendigt, men kan hjælpe, når du hurtigt vil dræbe en app - måske er det misbrug.

Du kan også gå ind i skærmbilledet Indstillinger, trykke på Apps, trykke på en app og bruge knappen Stop for at dræbe en fejlbehæftet app.

Android er baseret på Linux, og hver app på Android er tildelt en anden Linux bruger-id eller brugerkonto. Dette isolerer apps fra hinanden. Hvis du driver din enhed, kan apps undslippe deres brugersandkasser og køre med rodrettigheder.

Billedkredit: JD Hancock på Flickr