Does Android ROM support ARM based systems?

Android: Fundament, Hardware & Udvikling

15/10/2022

Rating: 4.49 (14768 votes)

Android er mere end bare et operativsystem; det er et økosystem, der driver milliarder af enheder verden over. Fra den smartphone, du holder i hånden, til de smarte ure på dit håndled og skærmene i din bil – Android er allestedsnærværende. Men hvad er det egentlig, der driver dette enorme og alsidige system? Hvordan er det bygget op, hvilken hardware understøtter det, og hvordan udvikles de apps, vi bruger dagligt? Denne artikel vil dykke ned i Androids fundament, udforske dets hardwaremæssige mangfoldighed og belyse processen bag appudvikling, alt sammen med det formål at give dig en dybere forståelse af et af verdens mest indflydelsesrige softwareplatforme.

What is Android software based on?
Figure 1. The Android software stack. The foundation of the Android platform is the Linux kernel. For example, the Android Runtime (ART) relies on the Linux kernel for underlying functionalities such as threading and low-level memory management.
Indholdsfortegnelse

Hvad er Android? En Dybdegående Forståelse

I sin kerne er Android et open source og Linux-baseret operativsystem designet til mobile enheder. Det blev oprindeligt udviklet af Open Handset Alliance, en koalition ledet af Google, med en vision om at skabe en åben standard for mobiltelefoner. Denne åbne tilgang har været en afgørende faktor for Androids succes og udbredelse.

Et af de mest banebrydende aspekter ved Android er dets "udvikl én gang, kør overalt"-filosofi. Dette betyder, at udviklere kan skabe applikationer, der er designet til at køre på en bred vifte af Android-drevne enheder, uanset producent eller specifikke hardwarekonfigurationer. Denne samlede tilgang til applikationsudvikling har markant reduceret barriererne for indrejse for udviklere og har ført til en eksplosion i antallet og variationen af tilgængelige apps.

Siden den første betaversion af Android Software Development Kit (SDK) blev udgivet af Google i 2007, og den første kommercielle version, Android 1.0, fulgte i september 2008, har Android gennemgået en bemærkelsesværdig udvikling. Hver ny version har bygget videre på forgængerens fundament, forbedret brugergrænsefladen, ydeevnen og tilføjet nye funktioner, der har cementeret Androids position som en førende mobilplatform.

Den Tekniske Rygrad: Androids Softwarestak

Androids arkitektur er bygget op i lag, hvor hvert lag leverer specifikke funktioner og bygger oven på det underliggende lag. Denne modulære opbygning sikrer stabilitet, fleksibilitet og sikkerhed.

Linux-kernen

Fundamentet for Android-platformen er Linux-kernen. Denne kerne giver Android adgang til grundlæggende systemtjenester som trådgenerering (threading), lavniveaus hukommelsesstyring og netværksfunktioner. Ved at udnytte den velprøvede Linux-kerne kan Android drage fordel af dens robuste sikkerhedsfunktioner og give en kendt platform for hardwareproducenter til at udvikle drivere til deres komponenter. Det er Linux-kernen, der sikrer stabilitet og effektivitet, selv under tunge belastninger.

Hardware Abstraction Layer (HAL)

Oven på Linux-kernen ligger Hardware Abstraction Layer (HAL). HAL'en fungerer som en bro, der giver standardiserede grænseflader, der eksponerer enhedens hardwaremuligheder for det højere niveau Java API-framework. HAL består af flere biblioteksmoduler, hvoraf hvert implementerer en grænseflade for en specifik type hardwarekomponent, som f.eks. kameraet eller Bluetooth-modulet. Når Java API-frameworket foretager et kald for at få adgang til enhedens hardware, indlæser Android-systemet det relevante biblioteksmodul fra HAL, hvilket sikrer, at softwaren kan kommunikere effektivt med forskellig hardware.

What is Android based on?
Android is an operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen -based mobile devices such as smartphones and tablets.

Android Runtime (ART) og Dalvik

For enheder med Android 5.0 (API-niveau 21) eller nyere kører hver app sine egne processer med sine egne instanser af Android Runtime (ART). ART er designet til at køre flere virtuelle maskiner på enheder med begrænset hukommelse ved at eksekvere Dalvik Executable (DEX) filer – et bytecode-format, der er specifikt designet til Android og optimeret til minimalt hukommelsesforbrug. ART udfører Ahead-of-Time (AOT) og Just-in-Time (JIT) kompilering, hvilket forbedrer app-ydeevnen og batterilevetiden. Før Android 5.0 var Dalvik den primære runtime-enhed. ART tilbyder også forbedret debugging-understøttelse og mere detaljerede diagnostiske undtagelser.

Native C/C++ Biblioteker

Mange af Androids kernekomponenter og -tjenester, herunder ART og HAL, er bygget fra native kode, der kræver native biblioteker skrevet i C og C++. Android-platformen giver Java framework-API'er til at eksponere funktionaliteten af nogle af disse native biblioteker til apps. Et fremragende eksempel er OpenGL ES, som kan tilgås via Android frameworkets Java OpenGL API for at tilføje 2D- og 3D-grafikunderstøttelse til apps. Hvis en udvikler har brug for direkte adgang til disse native biblioteker, kan de bruge Android Native Development Kit (NDK).

Java API Framework

Hele sættet af Android OS-funktioner er tilgængeligt via API'er skrevet i Java-sproget. Disse API'er danner grundlaget for at bygge Android-apps ved at forenkle genbrug af systemkomponenter og kernetjenester. Dette inkluderer et rigt og udvideligt UI-system til at bygge app-brugerflader (f.eks. lister, tekstbokse, knapper), en ressourcemanager til adgang til ikke-koderessourcer (lokaliserede strenge, grafik), en notifikationsmanager til at vise brugerdefinerede advarsler, en aktivitetsmanager til at styre app-livscyklus og indholdsudbydere, der giver apps adgang til data fra andre apps (f.eks. kontakter) eller dele deres egne data. Udviklere har fuld adgang til de samme framework-API'er, som Androids systemapps bruger.

Systemapps

Android inkluderer et sæt kerneapps til e-mail, SMS-beskeder, kalendere, internetbrowsing og kontakter, blandt andre. Disse apps, der er inkluderet i platformen, har ikke en særlig status i forhold til apps, som brugeren vælger at installere. Dette betyder, at en tredjepartsapp kan blive brugerens standardwebbrowser, SMS-system eller endda tastatur. Denne fleksibilitet er en hjørnesten i Androids åbne økosystem.

Hardwaren Bag Android: Fra Smartphones til Smart-tv'er

Androids designfleksibilitet strækker sig dybt ind i dens hardwareunderstøttelse, hvilket gør det muligt for operativsystemet at køre på et utroligt bredt spektrum af enheder.

Understøttede Arkitekturer

Den primære hardwareplatform for Android er ARM-arkitekturen, specifikt den 64-bit ARMv8-A-arkitektur og tidligere 32-bit versioner som ARMv7. Dog har x86- og x86-64-arkitekturer også officielt været understøttet i senere versioner af Android. Det uofficielle Android-x86-projekt leverede tidligere support for x86-arkitekturer, før den officielle support kom på plads. Siden 2012 har Android-enheder med Intel-processorer også fundet vej til markedet, herunder både telefoner og tablets. Android blev først gjort klar til at køre på 64-bit x86 og derefter på ARM64 for at opnå 64-bit platformunderstøttelse. Der er endda en uofficiel eksperimentel port af operativsystemet til RISC-V-arkitekturen, udgivet i 2021, hvilket vidner om Androids alsidighed.

How are Android apps developed?
Android applications are usually developed in the Java language using the Android Software Development Kit. Once developed, Android applications can be packaged easily and sold out either through a store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-droid and the Amazon Appstore.

Hukommelse og Grafik

Kravene til den minimale mængde RAM for enheder, der kører Android 7.1, varierer i praksis fra 2 GB for den bedste hardware ned til 1 GB for de mest almindelige skærme. Android understøtter alle versioner af OpenGL ES og Vulkan, hvilket sikrer fremragende grafikydeevne og kompatibilitet med moderne spil og applikationer.

Valgfrie Hardwarekomponenter

Android-enheder inkorporerer mange valgfrie hardwarekomponenter. Disse omfatter still- eller videokameraer, GPS, orienteringssensorer, dedikerede spilkontroller, accelerometre, gyroskoper, barometre, magnetometre, nærhedssensorer, tryksensorer, termometre og touchskærme. Selvom nogle komponenter ikke er påkrævet, er de blevet standard i visse enhedsklasser, såsom smartphones, og yderligere krav gælder, hvis de er til stede. Denne modularitet giver producenterne frihed til at designe enheder, der passer til forskellige markedsbehov.

Udviklingen af Hardwarekrav

Interessant nok har Androids hardwarekrav udviklet sig over tid. Da Android oprindeligt blev udviklet som et telefon-OS, var hardware som mikrofoner påkrævet. Disse krav er dog blevet lempet eller helt elimineret, efterhånden som Android er begyndt at blive brugt på set-top-bokse og andre enhedstyper. For eksempel krævede Android tidligere et autofokuskamera, hvilket blev lempet til et fast-fokus kamera, hvis det overhovedet var til stede, da kameraet helt blev droppet som et krav, da Android begyndte at blive brugt på set-top-bokse. Ud over at køre på smartphones og tablets kører flere producenter Android native på almindelig pc-hardware med tastatur og mus. Lignende pc-hardwarevenlige versioner af Android er frit tilgængelige fra Android-x86-projektet. Ved hjælp af Android-emulatoren, der er en del af Android SDK, eller tredjeparts-emulatorer, kan Android også køre ikke-native på x86-arkitekturer. Dette demonstrerer Androids utrolige tilpasningsevne.

En Verden af Enheder: Androids Udbredelse

Android kører på en bred vifte af enheder ud over de traditionelle smartphones og tablets. Dette inkluderer biler (Android Auto), computere (Chromebooks med Android-appunderstøttelse), smartwatches (Wear OS), og smart-tv'er (Android TV). Dog er den overvældende majoritet af Android-drevne enheder stadig smartphones.

I modsætning til dets to hovedkonkurrenter inden for mobiloperativsystemer, nemlig iOS (fra Apple) og HarmonyOS (fra Huawei), er Android-enheder fremstillet af et væld af forskellige Original Equipment Manufacturers (OEM'er). Disse OEM'er inkluderer globale giganter som Samsung, Xiaomi, Vivo, Oppo, OnePlus, Honor, Google selv, Sony, Lenovo, Sharp, Realme, Nothing og Tecno. Denne mangfoldighed af producenter sikrer et bredt udvalg af enheder på tværs af forskellige prisklasser og med varierende funktioner, hvilket giver forbrugerne enestående valgfrihed. Dette står i skarp kontrast til Apples model, hvor kun Apple selv producerer iOS-enheder, og Huaweis HarmonyOS, som primært er begrænset til deres egne enheder.

Udvikling af Android-apps: Fra Idé til App Store

At skabe en Android-app er en struktureret proces, der udnytter et robust udviklingsmiljø og et omfattende sæt værktøjer.

How can Firebase simplify app development?
Firebase can simplify app development by providing benefits such as automatic synchronization of data across devices, minimal on-device storage, and an authentication service without requiring you to write a backend service. Consider a chat app as an example, where the data is stored in Firebase.

Udviklingsmiljøet

Android-applikationer udvikles typisk i Java-sproget ved hjælp af Android Software Development Kit (SDK). SDK'et giver de nødvendige værktøjer, biblioteker og dokumentation til at bygge, teste og debugge apps. Efter udviklingen kan Android-applikationer nemt pakkes og distribueres via forskellige app-butikker. Den mest kendte er selvfølgelig Google Play, men der findes også alternativer som SlideME, Opera Mobile Store, Mobango, F-droid og Amazon Appstore.

Android driver hundredvis af millioner af mobile enheder i mere end 190 lande verden over. Det er den største installerede base af enhver mobilplatform og vokser hurtigt. Hver dag aktiveres mere end 1 million nye Android-enheder på verdensplan, hvilket vidner om platformens massive popularitet og rækkevidde.

Applikationskategorier og API-niveauer

Der findes et utal af Android-applikationer på markedet, organiseret i topkategorier som spil, produktivitet, sociale medier, underholdning, sundhed og fitness, og mange flere. For at sikre kompatibilitet og styre udviklingen af apps i forhold til forskellige Android-versioner, anvendes begrebet API Level. Et API Level er en heltalsværdi, der unikt identificerer den framework API-revision, der tilbydes af en version af Android-platformen. Udviklere specificerer et minimum API Level for deres apps, hvilket sikrer, at appen kun kører på enheder med den nødvendige funktionalitet.

Her er et simpelt overblik over nogle Android-versioner og deres tilsvarende API-niveauer:

Android VersionAPI-niveauKodenavn
Android 6.023Marshmallow
Android 5.021Lollipop
Android 4.419KitKat
Android 4.116Jelly Bean
Android 2.39Gingerbread
Android 1.01BASE

Nøglefunktioner, der Definerer Android

Androids succes kan også tilskrives et rigt sæt af funktioner, der konkurrerer med andre førende mobile operativsystemer. Her er nogle af de mest fremtrædende:

  • Smuk brugergrænseflade (UI): Android OS's grundlæggende skærm giver en intuitiv og visuelt tiltalende brugergrænseflade.
  • Forbindelsesmuligheder: Bred understøttelse af netværksstandarder som GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC og WiMAX.
  • Lagring: SQLite, en letvægts relationel database, bruges til datalagring.
  • Medieunderstøttelse: Kompatibilitet med en bred vifte af medieformater, herunder H.263, H.264, MPEG-4 SP, MP3, WAV, JPEG, PNG, GIF og BMP.
  • Beskeder: Indbygget understøttelse af SMS og MMS.
  • Webbrowser: Baseret på den open source WebKit-layoutmotor, kombineret med Chromes V8 JavaScript-motor, der understøtter HTML5 og CSS3.
  • Multi-touch: Android har indbygget understøttelse for multi-touch, som oprindeligt blev tilgængelig i håndsæt som HTC Hero.
  • Multi-tasking: Brugere kan skifte fra én opgave til en anden, og flere applikationer kan køre samtidigt.
  • Justerbare widgets: Widgets kan justeres i størrelse, så brugere kan udvide dem for at vise mere indhold eller formindske dem for at spare plads.
  • Multi-sprog: Understøtter både enkeltretnings- og tovejs-tekst.
  • Google Cloud Messaging (GCM): En service, der lader udviklere sende korte beskeddata til deres brugere på Android-enheder uden at skulle bruge en proprietær synkroniseringsløsning.
  • Wi-Fi Direct: En teknologi, der lader apps opdage og parre direkte over en høj-båndbredde peer-to-peer-forbindelse.
  • Android Beam: En populær NFC-baseret teknologi, der lader brugere øjeblikkeligt dele indhold ved blot at røre to NFC-aktiverede telefoner sammen.

Androids Historie: Fra Cupcake til Nutid

Androids udvikling er kendt for sine kodenavne, der følger alfabetet og ofte er opkaldt efter søde sager. Selvom de tidligste interne versioner var Aestro og Blender, startede de offentlige kodenavne med 'C' for Cupcake. Fra Android 1.5 Cupcake i 2009 til Android 9 Pie i 2018 og videre til de nyere nummererede versioner som Android 14, har hver iteration bragt betydelige forbedringer og nye funktioner til platformen. Denne konstante innovation har holdt Android relevant og konkurrencedygtig i et hurtigt skiftende teknologisk landskab.

Mascotten: Den Grønne Robot

Mascotten for Android er en ikonisk grøn android-robot, der afspejler softwarens navn. Selvom den længe ikke havde et officielt navn, kaldte Android-teamet hos Google den angiveligt "Bugdroid". I 2024 afslørede et Google blogindlæg dens officielle navn: "The Bot". Den blev designet af daværende Google grafisk designer Irina Blok den 5. november 2007, da Android blev annonceret. Robotdesignet blev oprindeligt ikke præsenteret for Google, men det blev hurtigt udbredt i Android-udviklingsteamet, hvor forskellige variationer af det blev skabt af udviklerne, der kunne lide figuren, da den var gratis under en Creative Commons-licens. Dens popularitet blandt udviklingsteamet førte til, at Google til sidst adopterede den som et officielt ikon som en del af Android-logoet, da det blev lanceret for forbrugere i 2008.

Ofte Stillede Spørgsmål (FAQ)

Hvad er Androids kerne?
Androids kerne er bygget på Linux-kernen, som leverer grundlæggende systemtjenester og sikkerhedsfunktioner.
Er Android open source?
Ja, Android er i høj grad open source. Det meste af koden er udgivet under Apache License version 2.0, mens Linux-kerneændringer er under GNU General Public License version 2.
Hvilke typer enheder kører Android?
Android kører på en bred vifte af enheder, herunder smartphones, tablets, smartwatches, smart-tv'er, biler og visse typer pc-hardware.
Hvordan udvikles Android-apps?
Android-apps udvikles primært i Java-sproget ved hjælp af Android Software Development Kit (SDK). Kotlin er også blevet et populært sprog til Android-udvikling.
Hvad er ART?
ART står for Android Runtime. Det er den runtime-enhed, der kører Android-apps, og den erstattede Dalvik fra Android 5.0 og frem. ART forbedrer app-ydeevnen gennem Ahead-of-Time (AOT) kompilering.

Androids rejse fra en lille start-up til det dominerende mobile operativsystem er et bevis på styrken ved open source, fleksibel arkitektur og et blomstrende udviklerfællesskab. Dets evne til at tilpasse sig nye hardwareplatforme og levere en ensartet udviklingsoplevelse har sikret dets plads som en central teknologi i den digitale verden. Med fortsat innovation og en stadig voksende installert base, ser fremtiden for Android lys ud, og dets indflydelse på vores digitale liv vil kun fortsætte med at vokse.

Hvis du vil læse andre artikler, der ligner Android: Fundament, Hardware & Udvikling, kan du besøge kategorien Mobilteknologi.

Go up