Android ArchiTekstur: Lag, Ramme, Komponent
โก Smart opsummering
Android ArchiTektur er en lagdelt softwarestak, der adskiller bekymringer pรฅ tvรฆrs af fire hovedniveauer: applikationslaget, applikationsrammen, Android Runtime med kernebiblioteker og Linux-kernen. Hvert lag lรธser forskellige problemer og kan opdateres uafhรฆngigt.

Android operativsystemets fรธrste udgivelse var i รฅr 2008. Allerede ved starten byggede holdet bag operativsystemet det oven pรฅ skuldrene af giganter. Ud over den brugergrรฆnseflade, som Android OS prรฆsenterer pรฅ overfladeniveau, det bestรฅr af flere lag. Disse lag inkluderer tilpasset kode og open source-teknologier, der har vรฆret under kontinuerlig udvikling i รฅrtier.
Android er blevet udviklet gennem massive samarbejder og investeringer fra mange virksomheder. Hovedvirksomheden bag Android-udvikling er GoogleAndre virksomheder omfatter enhedsproducenter som Samsung, LG; processorproducenter som Intel og ARM, for blot at nรฆvne nogle fรฅ.
Nรฅr vi taler om Android arkitektur, mener vi, hvordan Android systemet er designet, segmenteret i lag og bygget op til at fungere som et system. At bygge et sรฅ komplekst system krรฆver omhyggelig strukturering for at sikre, at alle komponenter arbejder sammen sammenhรฆngende. Dens arkitektur sikrer, at de mange komponenter fungerer som en helhed uden at gรฅ ned.
Lag
Fรธlgende er de lag, der sammensรฆtter Android arkitektur som angivet pรฅ diagrammet:
- Anvendelse
- Application Framework
- Android Runtime og kernebiblioteker
- Linux Kernel
Udviklingping Et operativsystem til mobile enheder kommer med en rรฆkke udfordringer. Brugen af โโdenne lagdelte arkitektur sikrer, at forskellige problemer opdeles og lรธses pรฅ forskellige niveauer.
En lagdelt arkitektur hjรฆlper med at adskille bekymringer og sikre, at Android-softwareudviklere ikke behรธver at hรฅndtere problemer pรฅ lavt niveau hver gang. De kan i stedet fokusere pรฅ at levere forretningsvรฆrdi, der vedrรธrer det lag, de arbejder pรฅ.
Udviklere arbejder pรฅ at fรฅ apps til ikke at bekymre sig om implementeringen af โโapplikationsrammerne. Det arbejde er overladt til systemudviklerne, der arbejder pรฅ Application frameworket.
Application Framework-udviklerne arbejder pรฅ udvikleroplevelse og behรธver ikke bekymre sig om drivere pรฅ lavt niveau. Systemingeniรธrer pรฅ lavt niveau kan fokusere fuldstรฆndigt pรฅ komponenter pรฅ lavt niveau, sรฅsom Bluetooth eller Audio-drivere og lignende.
Android's lagdelte struktur gรธr det muligt at anvende opdateringer med fejlrettelser eller forbedringer til hvert lag for sig. Dette sikrer, at รฆndringer pรฅ tvรฆrs af lag ikke forstyrrer hinanden. Dette gรธr det muligt for folk, der arbejder pรฅ et andet niveau af operativsystemet, at arbejde med at blokere hinanden, efterhรฅnden som nye opdateringer og udgivelser udfรธres.
Android Anvendelse

Dette er det lag, som slutbrugere interagerer med. Det er pรฅ dette lag, hvor applikationsudviklere udgiver deres applikationer for at kรธre.
Android, leveres som standard med et sรฆt applikationer, der gรธr Android-enheder brugbare fra offset.
- Home: Hjemmesiden pรฅ Android bestรฅr af startikoner til almindeligt anvendte applikationer, som slutbrugeren mรฅske vil have hurtig adgang til. Du kan starte apps ved at klikke pรฅ starterne for disse apps. Helt รธverst pรฅ skรฆrmen har du widgets, der viser netvรฆrk, batteriniveau, dato og klokkeslรฆt.
- Kontaktpersoner: Android, giver som standard et middel til at gemme og hente kontakter. Kontaktoplysninger deles pรฅ tvรฆrs af andre apps for at forbedre funktionaliteten.
- Beskeder: Android giver mulighed for at sende og modtage SMS-beskeder.
- E-mail: Android leveres med indbygget support til e-mail-tjenester. Opsรฆtning af en Android enheden krรฆver en Gmail konto. Opsรฆtning Gmail aktiverer andre e-mail-afhรฆngige komponenter pรฅ Android enheder. Nogle e-mail-afhรฆngige funktioner omfatter sikkerheds- og gendannelsesmekanismer. En anden e-mailafhรฆngig funktion er adgang til Play Butik, en markedsplads for Android applikationer.
- Browser: Android leveres med en standardbrowser.
- Underretningsskuffe: schweiziskping Nederst pรฅ skรฆrmen vises notifikationsskuffen. Den viser programhรฆndelser, som brugeren bรธr vรฆre opmรฆrksom pรฅ. Over notifikationen er der et sรฆt genveje til nogle almindeligt anvendte enhedsindstillinger, som brugerne kan slรฅ til og fra. Disse indstillinger inkluderer til- og fraknapper for forskellige hardwarekomponenter sรฅsom Bluetooth og Wifi. Langt tryk pรฅ disse hรฆndelser giver os mulighed for at navigere til deres konfigurationsside.
Dette lag kaldes ogsรฅ brugerniveau i modsรฆtning til lagene nedenunder, der primรฆrt er tilpasset applikationsudvikling. Applikationsudviklere opretter og tilpasser oplevelserne for deres apps pรฅ dette lag. Lagene under applikationslaget tilpasses ikke af applikationsudviklere. De betragtes som en del af systemlaget. Disse lag tilpasses af enhedsproducenter, Google Android-teams eller tredjeparter, der รธnsker at bruge Android kildekode til deres produkt eller forskning.
Application Framework
Android OS afslรธrer de underliggende biblioteker og funktioner i Android enhed, der bruger en Java API. Dette er det, der er kendt som Android rammer. Rammerne afslรธrer et sikkert og ensartet middel at udnytte Android enhedsressourcer.

1) Aktivitetsleder
Applikationer bruger Android aktivitetskomponent til at prรฆsentere et indgangspunkt til appen. Android Aktiviteter er de komponenter, der rummer den brugergrรฆnseflade, som app-brugere interagerer med. Som slutbrugere interagerer med Android enhed, de starter, stopper og hopper frem og tilbage pรฅ tvรฆrs af mange applikationer. Hver navigationsbegivenhed udlรธser aktivering og deaktivering af mange aktiviteter i respektive applikationer.
Android ActivityManager er ansvarlig for forudsigelig og konsistent adfรฆrd under applikationsovergange. ActivityManager giver en plads til app-skabere til at fรฅ deres apps til at reagere, nรฅr de Android OS udfรธrer globale handlinger. Applikationer kan lytte til begivenheder sรฅsom enhedsrotation, app-รธdelรฆggelse pรฅ grund af hukommelsesmangel, en app, der flyttes ud af fokus, og sรฅ videre.
Nogle eksempler pรฅ, hvordan applikationer kan reagere pรฅ disse overgange, omfatter at sรฆtte aktivitet i et spil pรฅ pause, stoppeping musik der afspilles under et telefonopkald.
2) Window Manager
Android kan bestemme skรฆrmoplysninger for at bestemme de krav, der er nรธdvendige for at oprette vinduer til applikationer. Windows er de slots, hvor vi kan se vores app-brugergrรฆnseflade. Android bruger Window Manager til at give disse oplysninger til apps og systemet, mens de kรธrer, sรฅ de kan tilpasse sig den tilstand, enheden kรธrer pรฅ.
Window Manager hjรฆlper med at levere en tilpasset app-oplevelse. Apps kan fylde hele skรฆrmen for en fordybende oplevelse eller dele skรฆrmen med andre apps. Android aktiverer dette ved at tillade multi-vinduer for hver app.
3) Lokationsadministrator
bro Android enheder er udstyret med GPS-enheder, der kan fรฅ brugerens placering ved hjรฆlp af satellitoplysninger, som kan gรฅ hele vejen til meterprรฆcision. Programmรธrer kan bede om placeringstilladelse fra brugerne, levere placering og bevidste oplevelser.
Android er ogsรฅ i stand til at bruge trรฅdlรธse teknologier til yderligere at berige lokationsdetaljer og รธge dรฆkningen, nรฅr enheder er lukkede rum. Android leverer disse funktioner under Location-Managerens paraply.
4) Telefonichef
bro Android enheder tjener en primรฆr rolle i telefoni. Android bruger TelephoneManager til at kombinere hardware- og softwarekomponenter for at levere telefonifunktioner. Hardwarekomponenterne omfatter eksterne dele sรฅsom sim-kortet og enhedsdele sรฅsom mikrofon, kamera og hรธjttalere. Softwarekomponenterne omfatter indbyggede komponenter sรฅsom opkaldstastatur, telefonbog, ringetoneprofiler. Ved at bruge TelephoneManager kan en udvikler udvide eller finjustere standardopkaldsfunktionaliteten.
5) Ressourcechef
En Android-app indeholder normalt mere end blot kode. De har ogsรฅ andre ressourcer sรฅsom ikoner, lyd- og videofiler, animationer, tekstfiler og lignende. Android hjรฆlper med at sikre, at der er effektiv, lydhรธr adgang til disse ressourcer. Det sikrer ogsรฅ, at de rigtige ressourcer leveres til slutbrugerne. For eksempel bruges de korrekte sprogtekstfiler, nรฅr felter udfyldes i apps.
6) Vis System
Android giver ogsรฅ et middel til nemt at skabe fรฆlles visuelle komponenter, der er nรธdvendige for app-interaktion. Disse komponenter inkluderer widgets som knapper, billedholdere som ImageView, komponenter til at vise en liste over elementer som ListView og mange flere. Komponenterne er prรฆfabrikerede, men kan ogsรฅ tilpasses, sรฅ de passer til appudviklers behov og branding.
7) Notifikationschef
Notifikationschefen er ansvarlig for at informere Android brugere af applikationsbegivenheder. Det gรธr den ved at give brugerne visuelle, lyd- eller vibrationssignaler eller en kombination af dem, nรฅr en hรฆndelse opstรฅr. Disse hรฆndelser har eksterne og interne triggere. Nogle eksempler pรฅ interne udlรธsere er hรฆndelser med lav batteristatus, der udlรธser en meddelelse om at vise lavt batteriniveau. Et andet eksempel er brugerspecificerede hรฆndelser som en alarm. Nogle eksempler pรฅ eksterne triggere inkluderer nye beskeder eller nye wifi-netvรฆrk, der er registreret.
Android giver programmรธrer og slutbrugere et middel til at finjustere meddelelsessystemet. Dette kan vรฆre med til at garantere, at de kan sende og modtage underretningsbegivenheder pรฅ en mรฅde, der passer bedst til dem og deres nuvรฆrende miljรธer.
8) Pakkeansvarlig
Android giver ogsรฅ adgang til oplysninger om installerede applikationer. Android holder track af programoplysninger sรฅsom installations- og afinstallationshรฆndelser, tilladelser som appen anmoder om og ressourceudnyttelse sรฅsom hukommelsesforbrug.
Disse oplysninger kan gรธre det muligt for udviklere at fรฅ deres applikationer til at aktivere eller deaktivere funktionalitet afhรฆngigt af nye funktioner prรฆsenteret af ledsagende apps.
9) Indholdsudbyder
Android har en standardiseret mรฅde at dele data mellem applikationer pรฅ enheden ved hjรฆlp af indholdsudbyderen. Udviklere kan bruge indholdsudbyderen til at eksponere data for andre applikationer. For eksempel kan de gรธre app-data sรธgbare fra eksterne sรธgeapplikationer. Android selv afslรธrer data sรฅsom kalenderdata, kontaktdata og lignende ved hjรฆlp af det samme system.
Android Runtime og Core/Native Libraries

1) Android Runtime
Android bruger i รธjeblikket Android Runtime (ART) til at udfรธre applikationskode. ART er forudgรฅet af Dalvik Runtime, der kompilerede udviklerkode til Dalvik Eksekverbare filer (Dex-filer). Disse eksekveringsmiljรธer er optimeret til Android-platformen under hensyntagen til processor- og hukommelsesbegrรฆnsningerne pรฅ mobile enheder.
Runtime oversรฆtter kode skrevet af programmรธrer til maskinkode, der udfรธrer beregninger og bruger Android-rammekomponenter til at levere funktionalitet. Android er vรฆrt for flere applikationer og systemkomponenter, der hver isรฆr kรธrer i deres processer.
Kernebiblioteker
I dette segment vil vi diskutere nogle af de kernebiblioteker, der er til stede i Android operativ system.
2) MediaFramework
Android understรธtter ogsรฅ indbygget populรฆre mediecodecs, hvilket gรธr det nemt for apps oprettet pรฅ Android platform til at bruge/afspille multimediekomponenter ud af boksen.
3) SQLite
Android har ogsรฅ en SQLite database som gรธr det muligt for applikationer at have meget hurtig indbygget databasefunktionalitet uden behov for tredjepartsbiblioteker.
4) Freetype
Android leveres med en forudinstalleret hurtig og fleksibel skrifttypemotor. Dette gรธr det muligt for applikationsudviklere at style komponenter i deres applikation og levere en rig oplevelse, der kommunikerer udviklerens hensigt.
5) OpenGL
Android leveres ogsรฅ med OpenGL-grafiksystemet. Det er et C-bibliotek, der hjรฆlper Android bruge hardwarekomponenter i realtidsgengivelse af 2D- og 3D-grafik.
6) SSL
Android leveres ogsรฅ med et indbygget sikkerhedslag for at muliggรธre sikker kommunikation mellem applikationer pรฅ Android og andre enheder sรฅsom servere, andre mobile enheder, routere.
7) SGL
Android leveres med et grafikbibliotek implementeret i kode pรฅ lavt niveau, der effektivt gengiver grafik til Android-platformen. Det fungerer med komponenter pรฅ hรธjere niveau i Android rammer Android grafik pipeline.
8) Libc
Kernen i Android indeholder biblioteker skrevet i C og C++, som er sprog pรฅ lavt niveau beregnet til indlejret brug, der hjรฆlper med at maksimere ydeevnen. Libc giver et middel til at eksponere systemfunktioner pรฅ lavt niveau sรฅsom trรฅde, stikkontakter, IO og lignende for disse biblioteker.
9) Webkit
Dette er en open source-browsermotor, der bruges som grundlag for at bygge browsere. Standarden Android browser fรธr version 4.4 KitKat bruger den til at gengive websider. Det gรธr det muligt for applikationsudviklere at gengive webkomponenter i view-systemet ved at bruge WebView. Dette gรธr det muligt for apps at integrere webkomponenter i deres funktionalitet.
10) Surface Manager
Overfladelederen er ansvarlig for at sikre en jรฆvn gengivelse af pรฅfรธringsskรฆrme. Det gรธr den ved at komponere 2D- og 3D-grafik til gengivelse. Det muliggรธr dette yderligere ved at lave buffering uden for skรฆrmen.
Linux Kernel
Rodkomponenten i Android Systemet er Linux-kernen. Det er den grundlรฆggende brik, der muliggรธr alle Android's funktionalitet.
Linux-kernen er et gennemprรธvet stykke software, der er blevet brugt i udviklingping operativsystemer til enheder med bred vifte, fra supercomputere til smรฅ gadgets. Det har begrรฆnsede behandlingsevner som smรฅ netvรฆrksgadgets til Internet of Things (IoT).
Linux-kernen kan tilpasses til at opfylde enhedsspecifikationerne for at gรธre det muligt for producenterne at lave Android enheder med forskellige muligheder for at matche brugeroplevelsen.
Med hensyn til Android, er kernen ansvarlig for mange grundlรฆggende funktioner, herunder men ikke begrรฆnset til disse:
- Enhedsdrivere
- Memory Management
- Process Management
Lad os udvide pรฅ nogle af funktionerne:
Enhedsdrivere
Linux-kernen rummer de nรธdvendige drivere for at gรธre det muligt for operativsystemet at arbejde med forskellige hardwarekomponenter. Disse drivere giver en standardgrรฆnseflade, som hardwarekomponenter fra forskellige producenter kan arbejde med.
Dette gรธr det muligt for enhedsproducenter at skaffe forskellige komponenter, sรฅsom Bluetooth-komponenter, Wifi-komponenter, kamerakomponenter. Sรฅ lรฆnge producenterne matcher Android standardspecifikationer, integration er problemfri.
1) USB-driver
Linux giver ogsรฅ Android med et middel til at forbinde med USB-enheder. Moderne enheder kommer med forskellige USB-porte, inklusive USB 2.0 og nye versioner af USB, inklusive USB-C. Disse drivere gรธr det muligt at bruge USB-porten til at oplade, overfรธre live data sรฅsom logfiler fra Android enheder og interagere med Android filsystem.
2) Bluetooth-driver
Linux Kernel giver understรธttelse af grรฆnseflader med Bluetooth-hardwarekomponenter. Det giver en mรฅde at lรฆse og skrive data modtaget fra understรธttede bluetooth-radiofrekvenser. Det giver ogsรฅ et sรฆt faciliteter til Android for at konfigurere Bluetooth.
3) Wifi-driver
Linux-kernen leverer drivere til at integrere WiFi-netvรฆrkshardwarekomponenterne. WiFi-komponenter indlejret i mobile enheder aktiverer Android enheder til at oprette forbindelse til wifi-netvรฆrk. Driveren gรธr det muligt for wifi-komponenterne at udsende wifi-netvรฆrk og oprette hotspots.
4) Skรฆrmdriver
Android gรธr det muligt at interface med displaykomponenter. For de fleste enheder er grรฆnsefladekomponenten en LCD-touchskรฆrm. Det tillader understรธttelse af konfiguration og tegning af pixels.
5) Lyddriver
Android enheder kommer normalt med hardwarekomponenter til lydinput og -output. Lyddrivere i kernen aktiverer Android system til at bruge lyd modtaget fra disse komponenter og ogsรฅ producere lydoutput.
6) Power Manager
bro Android enheder bruges, mens de er afbrudt fra stikkontakten. De er sรฅledes afhรฆngige af batterier til at drive dem til en stor del af deres brug. Linux Kernel kommer med et strรธmstyringssystem, der kan konfigureres til at opfylde behovene hos de enheder, der bruger det.
Android OS bruger strรธmstyringen til at gรธre andre komponenter pรฅ enheden strรธmbevidste. Det gรธr det ved at udsende forskellige magt-relaterede tilstande. Disse tilstande er Standby, Sleep og Lavt batteri. Pรฅ Android, er strรธmstyringen justeret til standard til dvaletilstand for at sikre maksimal batterilevetid.
Power Manager afslรธrer mรฅder, hvorpรฅ applikationer kan reagere pรฅ forskellige strรธmtilstande. Applikationer kan ogsรฅ รฆndre deres adfรฆrd for at matche enhedens aktuelle strรธmtilstand.
En applikation kan ogsรฅ anmode om at รฆndre standardstrรธmpolitikkerne. Applikationer kan opnรฅ den รธnskede funktionalitet, sรฅsom atping hardwarekomponenterne er aktive. Et eksempel er keeping skรฆrmen aktiv, nรฅr man lรฆser en bog, for at sikre, at brugeren ikke bliver afbrudt. Et andet eksempel er at holdeping lydkomponenterne tรฆndes, nรฅr der lyttes til musik i baggrunden.
7) Flash-hukommelse
bro Android enheder bruger flash-hukommelse som lagringsmiddel. Flash-hukommelse er hurtig og tager mindre plads, hvilket gรธr den perfekt til smรฅ enheder. Linux-kernen giver et middel til Android enheder til at lรฆse og skrive i flash-hukommelsen. Det giver et middel til at partitionere hukommelsen pรฅ en sรฅdan mรฅde, at OS og andre applikationer nemt og effektivt kan dele hukommelsesressourcen.
8) Bindemiddel
Android er vรฆrt for mange applikationer og systemkomponenter, der hver isรฆr kรธrer i deres processer. I de fleste tilfรฆlde bรธr disse processer isoleres fra hinanden for at forhindre interferens og datakorruption. Alligevel er der tilfรฆlde, hvor vi รธnsker at overfรธre data fra รฉn proces til en anden.
Linux-kernen muliggรธr datadelingsfunktionalitet ved at levere binderdrivere. Binder-drivere muliggรธr inter-proces kommunikation, IPC. Brug af IPC-processer kan opdage andre processer og dele information.
Memory Management
Et andet ansvar for Linux-kernen er hukommelsesstyring. Nรฅr forskellige applikationer kรธrer, sikrer kernen, at den hukommelsesplads, de bruger, ikke kommer i konflikt og overskriver hinanden.
Det hjรฆlper ogsรฅ med at sikre, at alle kรธrende apps fรฅr tilstrรฆkkelig hukommelse til at fungere, hvilket sikrer, at ingen enkelt app tager for meget plads.
Process Management
Hver app i Android kรธrer i en proces. Kernen er ogsรฅ ansvarlig for at styre processer. Det betyder, at den er ansvarlig for at oprette, sรฆtte pรฅ pause og stoppeping, lukke eller afbryde processer.
Kernen muliggรธr forskellige funktionaliteter sรฅsom at kรธre flere processer pรฅ samme tid, kommunikere mellem processer, kรธre processer i baggrunden og sรฅ videre.
Da hver proces krรฆver sin egen hukommelsesplads for at fungere korrekt, sikrer kernen, at hukommelsespladser tildelt til hver proces er beskyttet mod andre processer. Det sikrer ogsรฅ, at ressourcer som f.eks RAM allokeret til processer frigรธres, nรฅr processerne lukkes ned.
Linux-kernen er ogsรฅ ansvarlig for at distribuere arbejde til processorerne pรฅ enheden. Dette gรธr det muligt at maksimere ydeevnen af โโenheder med flere kerner, da forskellige apps vil have processer, der kรธres pรฅ en anden kerne.
Linux-kernen udfรธrer flere opgaver under motorhjelmen, herunder hรฅndhรฆvelse af sikkerhed.

