Hvordan Android håndterer prosesser
Windows lar skrivebordsprogrammer fortsette å kjøre om de er synlige eller ikke, mens Apples IOS bare lar apper utføre noen få begrensede oppgaver i bakgrunnen. Android sitter et sted i mellom - apps som kjører i forgrunnen, prioriteres, men apper har mye mer frihet til å kjøre i bakgrunnen enn de gjør på iOS.
Vi tar en titt på hvordan Android administrerer appene og prosessene som kjører på telefonen eller nettbrettet, og demystiserer hva som skjer i bakgrunnen.
Prosess livscykel Hierarki
En prosess på Android kan være i en av fem forskjellige stater til enhver tid, fra viktigste til minst viktige:
- 1. Forgrunns prosess: Appen du bruker betraktes som forgrunns prosessen. Andre prosesser kan også betraktes som forgrunns prosesser - for eksempel hvis de samhandler med prosessen som for øyeblikket er i forgrunnen. Det er bare noen få forgrunns prosesser til enhver tid.
- 2. Synlig prosess: En synlig prosess er ikke i forgrunnen, men påvirker fortsatt hva du ser på skjermen. Forgrunnsprosessen kan for eksempel være en dialog som lar deg se en app bak den - appen som er synlig i bakgrunnen, ville være en synlig prosess.
- 3. Serviceprosess: En serviceprosess er ikke knyttet til noen apper som er synlige på skjermen. Men det gjør noe i bakgrunnen, for eksempel å spille musikk eller laste ned data i bakgrunnen. Hvis du for eksempel begynner å spille musikk og bytte til en annen app, er musikkspillet i bakgrunnen håndtert av en serviceprosess.
- 4. Bakgrunnsprosess: Bakgrunnsprosesser er ikke synlige for brukeren. De har ingen innvirkning på opplevelsen av å bruke telefonen. Til enhver tid kjører mange bakgrunnsprosesser. Du kan tenke på disse bakgrunnsprosessene som "pausede" apper. De holdes i minnet, slik at du raskt kan fortsette å bruke dem når du går tilbake til dem, men de bruker ikke verdifull CPU-tid eller andre ikke-minne ressurser.
- 5. Tom prosess: En tom prosess inneholder ikke noen appdata lenger. Det kan holdes rundt for caching-formål for å øke applanseringene senere, eller systemet kan drepe det etter behov.
For eksempel, la oss si at du slår på telefonen og åpner en musikkapp. Mens du bruker det, vil musikkappen være en forgrunns prosess. Når du begynner å spille musikk og forlate musikkappen, fortsetter musikken som en serviceprosess.
La oss se på Angry Birds som et annet eksempel. Angry Birds ville være en forgrunns prosess mens du spilte den. Når du forlater Angry Birds og angir Gmail-appen for å se din e-post, blir Angry Birds en bakgrunnsprosess (fordi den ikke trenger å gjøre noe i bakgrunnen), mens Gmail blir forgrunnsprosessen. Når du bytter tilbake til Angry Birds, blir det din forgrunns prosess, og spillet vil fortsette raskt. Angry Birds brukte ikke ressurser i bakgrunnen - bortsett fra noe RAM - men det gjenopptas raskt fordi det forblev cached og klar til å fortsette.
Android administrerer automatisk prosesser
Android gjør en god jobb med å automatisk administrere disse prosessene, og derfor trenger du ikke en oppgavebriller på Android.
Når Android trenger flere systemressurser, begynner det å drepe de minst viktige prosessene først. Android vil begynne å drepe tomme og bakgrunnsprosesser for å frigjøre minne hvis du kjører lavt. Hvis du trenger mer minne, for eksempel, hvis du spiller et spesielt krevende spill på en enhet uten mye RAM, begynner Android å drepe serviceprosesser, slik at streaming av musikk og filnedlastinger kan stoppe.
I de fleste tilfeller gjør Android dette uten at du trenger å bekymre deg for det. Android bruker intelligent enhetens RAM for å cache apper og andre data, fordi det ikke er noe poeng i å la RAM-en være tom.
Selvfølgelig gir Android apper med så mye fleksibilitet at de har plass til å feile seg. For eksempel kan en dårlig kodet app starte en serviceprosess som fortsatt kjører i bakgrunnen hele tiden, bruker opp hele CPU-tiden din og reduserer batteriets levetid dramatisk.
En interessant ting du vil legge merke til i antivirusprogrammer som Avast! for Android er det at antivirusprogrammet bruker et varselikon. Hvis du prøver å deaktivere varselikonet, Avast! vil anbefale mot det. Ved å ha et synlig varselikon, Avast! gjør seg til appen med høyere prioritet, og forhindrer Android fra å betrakte det som en bakgrunnsbilde og drepe den.
Android Apps kan starte som svar på hendelser
Android-apper kan også starte som svar på hendelser. For eksempel kan en utvikler programmere sin app for å kjøre automatisk ved oppstart og kjøre en tjeneste i bakgrunnen. Apper kan starte som svar på en rekke andre hendelser, for eksempel når du tar et bilde, når dataforbindelsen endres, og så videre. Dette gjør det mulig for apper å utføre handlinger som svar på hendelser uten å løpe konstant i bakgrunnen.
Administrere prosesser
Du behøver ikke å administrere prosesser manuelt, men det er noen måter å gjøre det hvis du vil. Du kan bruke multitasking-menyen på Android 4.0 og nyere for å gjøre noen grunnleggende prosessbehandling. For å få tilgang til den, trykk på den dedikerte multitasking-knappen på Nexus-enheter. På andre Android-enheter må du kanskje dobbeltklikke eller trykke lenge på Hjem-knappen.
Apper som vises i menyen er sannsynligvis i "bakgrunnsprosess" -tilstand. Du kan drepe dem ved å sveipe en app til venstre eller høyre, som vil fjerne den fra enhetens minne. Dette burde ikke være nødvendig, men kan hjelpe når du vil raskt drepe en app - kanskje er det feil.
Du kan også gå inn på Innstillinger-skjermbildet, trykke på Apps, trykke på en app, og bruke Force Stop-knappen for å drepe en feilaktig app.
Android er basert på Linux, og hver app på Android er tildelt en annen Linux bruker ID eller brukerkonto. Dette isolerer programmer fra hverandre. Hvis du roter enheten din, kan appene unnslippe brukerens sandkasser og kjøre med root-privilegier.
Bildekreditt: JD Hancock på Flickr