10/01/2024
Android er mere end blot et operativsystem; det er et omfattende økosystem, der driver milliarder af enheder verden over. At forstå Android softwareudvikling er nøglen til at låse op for dets fulde potentiale, uanset om du er en erfaren udvikler eller blot nysgerrig på, hvordan dine yndlingsapps bliver til. Denne artikel vil føre dig gennem de forskellige facetter af Android-udvikling, fra de grundlæggende værktøjer og protokoller til de spændende innovationer og fællesskabsdrevne initiativer, der har formet platformen.

Android softwareudviklingssættet, bedre kendt som Android SDK (Software Development Kit), udgør hjertet i denne proces. Det er en omfattende samling af udviklingsværktøjer, der giver udviklere alt, hvad de behøver for at skabe, teste og fejlfinde applikationer til Android-platformen. SDK’et indeholder alt fra biblioteker og dokumentation til prøvekoder og enhedsemulatorer. Inden for SDK'et findes Android SDK Platform Tools, som er en særskilt undergruppe, der kan downloades. Denne undergruppe består af kraftfulde kommando-linjeværktøjer som ADB (Android Debug Bridge) og Fastboot. ADB er et uundværligt værktøj, der gør det muligt for udviklere at køre kommandoer på en tilsluttet Android-enhed, hvilket er afgørende for debugging og installation af applikationer. Fastboot er en protokol, der primært bruges til at flashe filsystemer på enheder, hvilket ofte er nødvendigt ved opdatering af firmware eller installation af brugerdefinerede ROM'er. For dem, der ønsker at opnå maksimal ydeevne eller interagere tættere med hardwaren, kan kode skrevet i C/C++ kompileres til ARM- eller x86-native kode (eller deres 64-bit varianter) ved hjælp af Android Native Development Kit (NDK). Dette åbner op for avancerede anvendelsesscenarier, såsom spiludvikling og højtydende beregninger.
- Android Open Accessory Development Kit: Forbindelse til den Fysiske Verden
- Android Developer Challenge: Fremme af Innovation
- Fællesskabsbaserede Distributioner og "Rooting"
- Java Standarder og Kompatibilitetsudfordringer
- Historie og Markedsandel: En Rejse fra Udfordring til Dominans
- Ofte Stillede Spørgsmål om Android Udvikling
Android Open Accessory Development Kit: Forbindelse til den Fysiske Verden
Med introduktionen af Android 3.1-platformen (og senere tilbageporteret til Android 2.3.4) blev Android Open Accessory-understøttelsen en realitet. Denne funktion revolutionerede måden, hvorpå Android-enheder kan interagere med ekstern USB-hardware. Det gør det muligt for et Android USB-tilbehør at kommunikere med en Android-drevet enhed i en speciel "tilbehørstilstand". Når en Android-enhed er i denne tilstand, fungerer det tilsluttede tilbehør som USB-værten, hvilket betyder, at det forsyner bussen med strøm og opregner enheder. Den Android-drevne enhed fungerer derimod som USB-enheden. Android USB-tilbehør er specifikt designet til at tilsluttes Android-enheder og følger en simpel protokol (Android-tilbehørsprotokol), der gør det muligt for dem at detektere Android-drevne enheder, der understøtter tilbehørstilstand. Dette har åbnet dørene for en bred vifte af innovative produkter, lige fra medicinsk udstyr og robotter til musikinstrumenter og specialiserede sensorer, der kan integreres problemfrit med Android-platformen.
Udvikling af Ekstern Hardware og Kreative Løsninger
Udover Android Open Accessory Development Kit findes der flere andre udviklingsværktøjer, der er designet til at hjælpe Android-enheder med at interagere med ekstern elektronik. Eksempler inkluderer IOIO, Microbridge og Triggertrap. Disse værktøjer og platforme giver udviklere mulighed for at bygge bro mellem den digitale verden af Android-applikationer og den fysiske verden af hardwarekomponenter, hvilket muliggør skabelsen af interaktive og intelligente systemer.
Android Developer Challenge: Fremme af Innovation
For at stimulere innovation og opdage de mest banebrydende applikationer til Android afholdt Google Android Developer Challenge (ADC). Dette var en prestigefyldt konkurrence, hvor Google tilbød samlede præmier på 10 millioner amerikanske dollars, fordelt mellem ADC I og ADC II. ADC I accepterede indsendelser fra januar til april 2008. De 50 mest lovende bidrag, der blev annonceret i maj 2008, modtog hver især en pris på 25.000 dollars til yderligere udvikling. Konkurrencen kulminerede i september med annonceringen af ti hold, der modtog 275.000 dollars hver, og ti hold, der modtog 100.000 dollars hver. ADC II blev annonceret i maj 2009. Den første runde af ADC II lukkede i oktober 2009, og vinderne af første runde, bestående af de 200 bedste applikationer, blev annonceret i november samme år. Afstemningen til anden runde åbnede samtidig og sluttede i slutningen af november. Google annoncerede de øverste vindere af ADC II i slutningen af november, hvor SweetDreams, What the Doodle!? og WaveSecure blev nomineret som de overordnede vindere af udfordringen. Disse konkurrencer var med til at sætte skub i applikationsudviklingen og demonstrere Android-platformens alsidighed.
Fællesskabsbaserede Distributioner og "Rooting"
Et levende fællesskab af open source-entusiaster har spillet en væsentlig rolle i Androids udvikling ved at bygge og dele Android-baserede distributioner, også kendt som "custom firmware" eller "custom ROMs". Disse distributioner kommer med en række tilpasninger og ekstra funktioner, såsom FLAC lossless audio-understøttelse og muligheden for at gemme downloadede applikationer på et microSD-kort. Dette involverer typisk rooting af enheden. Rooting giver brugere root-adgang til operativsystemet, hvilket muliggør fuld kontrol over telefonen. Selvom rooting tilbyder enestående fleksibilitet og tilpasningsmuligheder, medfører det også flere ulemper, herunder øget risiko for hacking, større risiko for at "bricke" enheden (dvs. gøre den ubrugelig), tab af garanti og øget risiko for virusangreb. Det er også muligt at installere brugerdefineret firmware, selvom enhedens bootloader også skal låses op. Brugerdefineret firmware giver brugere af ældre telefoner mulighed for at bruge applikationer, der kun er tilgængelige på nyere udgivelser. Disse firmwarepakker opdateres ofte, inkorporerer elementer af Android-funktionalitet, der endnu ikke er officielt udgivet inden for en operatør-godkendt firmware, og har en tendens til at have færre begrænsninger. CyanogenMod og OMFGB er eksempler på sådan firmware. Et bemærkelsesværdigt tilfælde opstod i september 2009, da Google udstedte et "cease and desist"-brev til modderen Cyanogen, med henvisning til problemer med genudgivelsen af Googles lukkede kildekode-applikationer inden for den brugerdefinerede firmware. Selvom det meste af Android OS er open source, leveres telefoner med lukkede kildekode Google-applikationer til funktioner som Google Play og GPS-navigation. Google har fastholdt, at disse applikationer kun kan leveres via godkendte distributionskanaler af licenserede distributører. Cyanogen overholdt Googles licens og fortsatte med at distribuere sin mod uden den proprietære software, idet de leverede en metode til at sikkerhedskopiere licenserede Google-applikationer under moddens installationsproces og gendanne dem, når processen var afsluttet.
Java Standarder og Kompatibilitetsudfordringer
En af de tidlige udfordringer for Android-udvikling var, at platformen ikke anvender etablerede Java-standarder, dvs. Java SE (Standard Edition) og Java ME (Micro Edition). Dette forhindrer direkte kompatibilitet mellem Java-applikationer skrevet til disse platforme og dem skrevet til Android-platformen. Android genbruger Java-sprog-syntaksen og semantikken, men det giver ikke de fulde klasbiblioteker og API'er, der er bundtet med Java SE eller ME. Selvom dette kan virke som en begrænsning, findes der flere værktøjer på markedet fra virksomheder som Myriad Group og UpOnTek, der leverer Java ME til Android-konverteringstjenester. Android leverer sine egne GUI-klasser og understøtter ikke Java AWT, Swing eller JavaFX. Det understøtter heller ikke den fulde Java Beans API. Dette betyder, at udviklere, der er vant til standard Java-udvikling, skal lære Androids specifikke rammer og biblioteker.
Historie og Markedsandel: En Rejse fra Udfordring til Dominans
Android blev skabt af Open Handset Alliance, som ledes af Google. Den tidlige feedback på udvikling af applikationer til Android-platformen var blandet. Problemer, der blev nævnt, inkluderede bugs, manglende dokumentation, utilstrækkelig QA-infrastruktur og fravær af et offentligt "issue-tracking"-system. Google annoncerede dog en "issue tracker" i januar 2008. I december 2007 udtalte Adam MacBeth, grundlægger af MergeLab mobile startup: "Funktionaliteten er der ikke, er dårligt dokumenteret eller virker simpelthen ikke... Det er tydeligvis ikke klar til "prime time"". På trods af dette begyndte Android-målrettede applikationer at dukke op ugen efter, at platformen blev annonceret. Den første offentligt tilgængelige applikation var Snake-spillet. En forhåndsudgivelse af Android SDK blev frigivet den 12. november 2007. I juli 2008 sendte Android Developer Challenge Team ved en fejl en e-mail til alle deltagere i Android Developer Challenge, hvor de annoncerede, at en ny udgivelse af SDK'et var tilgængelig i et "privat" downloadområde. E-mailen var beregnet til vindere af første runde af Android Developer Challenge. Afsløringen af, at Google leverede nye SDK-udgivelser til nogle udviklere og ikke andre (og holdt denne ordning privat), førte til udbredt frustration inden for Android-udviklerfællesskabet på det tidspunkt. Den 18. august 2008 blev Android 0.9 SDK beta frigivet. Denne udgivelse leverede en opdateret og udvidet API, forbedrede udviklingsværktøjer og et opdateret design til startskærmen. Detaljerede instruktioner til opgradering var tilgængelige for dem, der allerede arbejdede med en tidligere udgivelse. Den 23. september 2008 blev Android 1.0 SDK (Release 1) frigivet. Ifølge udgivelsesnoterne inkluderede den "hovedsageligt fejlrettelser, selvom nogle mindre funktioner blev tilføjet." Den inkluderede også flere API-ændringer fra 0.9-versionen. Flere versioner er blevet frigivet, siden den blev udviklet. Den 5. december 2008 annoncerede Google den første Android Dev Phone, en SIM-oplåst og hardware-oplåst enhed, der er designet til avancerede udviklere. Det var en modificeret version af HTC's Dream-telefon. Mens udviklere kan bruge almindelige forbrugerenheder til at teste og bruge deres applikationer, kan nogle udviklere vælge en dedikeret ulåst enhed eller en enhed uden kontrakt. Per juli 2013 var mere end en million applikationer blevet udviklet til Android, med over 25 milliarder downloads. En forskning fra juni 2011 indikerede, at over 67% af mobile udviklere brugte platformen på udgivelsestidspunktet. Android smartphone-forsendelser forventedes at overstige 1,2 milliarder enheder i 2018 med en markedsandel på 85%. Denne utrolige vækst vidner om Androids dominans og udviklingsfællesskabets styrke.
Ofte Stillede Spørgsmål om Android Udvikling
- Hvad er Android SDK?
- Android SDK (Software Development Kit) er en samling af softwareudviklingsværktøjer, der bruges til at udvikle applikationer til Android-platformen. Det inkluderer debugging-værktøjer, biblioteker, en emulator og dokumentation.
- Hvad er ADB og Fastboot?
- ADB (Android Debug Bridge) er et kommando-linjeværktøj, der giver dig mulighed for at kommunikere med en Android-drevet enhed. Det bruges til at installere apps, overføre filer og udføre debugging. Fastboot er en protokol, der bruges til at flashe (installere) firmware, genoprettelsesbilleder og andre filer direkte til enhedens lager.
- Hvorfor "roote" en Android-enhed?
- At "roote" en Android-enhed giver dig superbrugeradgang til operativsystemet, hvilket muliggør dybere tilpasning, fjernelse af forudinstallerede apps (bloatware), installation af brugerdefinerede ROM'er og kørsel af apps, der kræver særlige tilladelser. Det medfører dog også risici som tab af garanti, sikkerhedsrisici og potentiale for at "bricke" enheden.
- Er Android-udvikling baseret på standard Java?
- Android genbruger Java-sprog-syntaksen og semantikken, men det bruger ikke de fulde Java SE- eller ME-biblioteker. I stedet leverer Android sine egne biblioteker og API'er, hvilket betyder, at standard Java-applikationer ikke er direkte kompatible med Android-platformen uden konvertering.
- Hvad var Android Developer Challenge (ADC)?
- Android Developer Challenge var en serie af konkurrencer arrangeret af Google for at fremme udviklingen af innovative applikationer til Android-platformen. Konkurrencen tilbød betydelige pengepræmier og bidrog til at kickstarte Android-app-økosystemet.
Hvis du vil læse andre artikler, der ligner Dyk Ned i Android Softwareudviklingens Verden, kan du besøge kategorien Mobiludvikling.
