Skip to main content

År 2019 fanns det över 2,5 miljarder aktiva Android-enheter i omlopp. Den siffran ökar bara. Du kanske har tillgång till en Android-telefon eller -enhet. Men tänk om du inte har det? Det är där en Android-emulator kan hjälpa till; den kan simulera ett Android-operativsystem och ett gränssnitt så att du kan testa din Android-applikation. 

Den här artikeln innehåller detaljerad information om Android-emulatorer, hur de fungerar, hur de används och i vilken utsträckning de korrekt kan testa dina Android- och webbapplikationer.

Jag kommer att gå igenom:

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Vad är Android-emulatorer?

Android-emulatorer är program som är utformade för att efterlikna maskinvaran och programvaran hos en mobil Android-enhet i utvecklings- och testningssyfte. Android-emulatorer körs på din Mac eller PC så att du kan utveckla Android-fokuserade applikationer vid ditt skrivbord.

Skärmbild av Android-emulator på Mac
Android-emulatorer kan köras på både Mac och PC, vilket gör det möjligt för alla användare att testa sina applikationer på Android.

Att spela eller testa spel är en populär anledning att använda Android-emulatorer, men du kan också använda dem för att köra vilken applikation som helst som finns i Google Play Butik. Om du till exempel kör din Instagram-app i en emulator kan du ladda upp foton direkt från datorn – något som annars är omöjligt.

För att förstå vad en Android-emulator kan göra bör du först förstå hur den fungerar. 

Hur fungerar Android-emulatorer?

Android-emulatorer, som BlueStacks, NoxPlayer eller Genymotion, är program som installeras på din stationära dator och som kan simulera upplevelsen av att använda en Android-enhet, både vad gäller programvara och maskinvara. Genom att använda en sådan kan spelare spela

Skärmbild av Bluestack
BlueStacks, som visas i den här skärmbilden, är ett exempel på en populär Android-emulator.

Android-spel på PC och låter testare utveckla och testa Android-applikationer i realtid. 

Emulatorer efterliknar arkitekturen hos det system du riktar dig mot. Därför kan du hitta emulatorer för alla möjliga typer av programvara och maskinvara, beroende på dina behov.

Vad är snabbemulatorn (QEMU)?

Skärmbild av Quick Emulator
Quick Emulator används för att snabba upp emuleringen genom maskinvaruassisterad virtualisering.

Som ett verktyg med öppen källkod körs Quick Emulator på många värdsystem eller arbetsstationer, exempelvis operativsystem och processorer, för att emulera andra gästoperativsystem och gästprocessorer.

QEMU driver Android-emulatorer för att efterlikna maskinvaran på en gästenhet så att den motsvarar maskinvaran på en värdenhet. Det körs som ett program på din dator och översätter gästprogrambinärgränssnittet så att det motsvarar det på en värdenhet.

Översättningen är komplex och tidskrävande, vilket gör emuleringen extremt långsam. Men om arkitekturerna hos värd- och gästenheterna liknar varandra blir översättningen enkel och snabb. 

Om dina värd- och gästenheter har liknande instruktionsarkitektur hoppar QEMU över den binära översättningsprocessen. Den kör omedelbart gästenheten direkt på värdenhetens CPU – en process som kallas maskinvaruassisterad virtualisering.

Matchning av enhetsarkitektur görs med hjälp av en hypervisor. 

Get regular tech leadership wisdom for delivering better software and systems.

Hur fungerar hypervisorer?

Skärmbild av VMware, ett exempel på en hypervisor
VMware är ett exempel på en hypervisor.

En hypervisor eller virtuell maskinövervakare (VMM) är en programvara som gör det möjligt för en enhet, exempelvis en dator,  att stödja flera gäst-VM:er genom att dela sina resurser, såsom processorkraft och minne. Hypervisorer hjälper dig att använda ett systems resurser och erbjuder större IT-rörlighet mellan olika servrar.

Det finns två huvudtyper av hypervisorer: Typ 1 eller hypervisorer som körs direkt på maskinvaran, och Typ 2 eller värdbaserade hypervisorer. 

  • Typ 1-hypervisorer fungerar som lätta operativsystem som körs direkt på värdens maskinvara. 
  • Typ 2-hypervisorer körs som programvara i ett operativsystem, precis som andra datorprogram och applikationer, vilket gör att du kan köra en Android-app via programvaran.

Före 2017 krävde Androids ARM-arkitektur översättning från en emulator i Android Studio för att matcha de flesta arkitekturer som användes i persondatorer.

Android släppte Android Studio-utgåva 25.3.0, som förbättrade emulatorn genom att göra det möjligt för den att förbättra virtualiseringen via ett maskinvaruassisterat protokoll. Därför behöver du en hypervisor för att genomföra maskinvaruassisterad virtualisering, med tanke på att olika PC-operativsystem stöder olika hypervisorer.

Intel använder maskinvaruaccelerationshanteraren HAXM som hypervisorkomponent för Windows PC- och macOS-plattformar, medan Linux använder kärnbaserad virtuell maskin, KVM.

Androids binära applikationsgränssnitt för x86, ABI, stöder maskinvaruacceleration på olika datorer. Men om du vill snabba upp enhetens virtuella prestanda kräver denna Android-emulator att du installerar och aktiverar hypervisorn.

Maskinvaruacceleration gör att en Android-emulator kan köra din virtuella enhet i hastigheter som liknar dem hos din aktiva CPU.  

Så konfigurerar du en Android-emulator

Efter att utgåva 25.3.0 släpptes distribuerade Android sin emulator separat från sina SDK-verktyg. Det kan vara knepigt att konfigurera din Android-emulator, men här är en kort översikt över processen. 

Maskinvarukrav

Du behöver Android SDK-utgåva 26.1.1 eller senare. Din PC eller bärbara dator bör ha en processor av typen 64- eller 86-bitars för att fungera med Android-emulatorn.

Om du använder Android 8.1 eller senare versioner måste du ha en webbkamera som kan fånga bilder med upplösningen 720p.

För de flesta enheter uppmanar emulatorn dig att tillåta maskinvaruacceleration av enhetens prestanda, och du behöver HAXM-utgåva 7.2.0:s Intel-hypervisor för detta. 

Användare av Linux- och Windows-plattformar behöver ytterligare enhetskomponenter, men detta beror på deras processorer.

  • För Linux kan användare förlita sig på AMD:s virtualiseringssystem med SIMD-uppsättning 3-tillägg.
  • För Windows PC kan användare förlita sig på AMD Android Studio-utgåva 3.2 och senare, som fungerar med Windows hypervisor-API.

Intel-användare kan använda Intel VT-x och Intel 64-stöd för funktionen Execute Disable (XD), som inaktiverar körning.

När du har installerat din Android-emulator kan du nu öppna hanteraren för virtuella Android-enheter (AVD Manager).

Hanteraren för virtuella Android-enheter (AVD)

Skärmbild av hanteraren för virtuella Android-enheter (AVD)
Hanteraren för virtuella Android-enheter låter användare installera ett system-ABI som matchar arkitekturen hos den processor som används.

Med din AVD-hanterare kan du konfigurera och anpassa dina Android-enheter.

Den levereras med förkonfigurerade profiler för telefoner, surfplattor och TV-apparater – var och en särskilt utformad för varje tillverkare. Du kan anpassa externa funktioner och skärmstorlek samt importera en profil efter eget val.

Google Play Butik och dess testsvit för kompatibilitet är dock endast tillgängliga på ett begränsat antal enheter – bara sådana som överensstämmer med Androids kompatibilitetsprogram.

Med AVD-hanteraren kan du installera ett system-ABI på din virtuella enhet som emulatorn rekommenderar och vars arkitektur matchar den hos din aktiva processor.

Din AVD:s verifieringskonfiguration låter dig ändra definierade programvaru- eller maskinvaruprofiler och konfigurera enhetsinställningar som namn och orientering.

Till slut startar din emulator specifikationerna för din virtuella enhet och möjliggör ytterligare kontroller och justeringar som geolokalisering, nätverksfördröjning, enhetsrotation, fingeravtryckssensor, kamera, batteristatus med mera. 

Med virtuella enheter kan du spara dina instanser i samma tillstånd som när du stänger dem, vilket gör att du kan fortsätta där du slutade tidigare.  

Hur används Android-simulatorer för testning?

Innan utvecklare genomför ändringar i en gren testar de koden i pipelines. Efter ett snabbt enhetstest med IDE:n börjar instrumentell och funktionell testning.

Med din Android-emulator kan du köra instrumenterade tester, till exempel verifiera att kod hanterar centrala resurser och appspecifika filer samt testa funktionerna hos dina externa beroenden.

Emulatorer hjälper också till med prestandatestning av appar för att verifiera att interaktionerna är smidiga och att appar använder enhetens resurser inom de nödvändiga begränsningarna. För korrekta resultat bör du se till att mäta enhetens CPU- och grafikfunktioner.

Din Android-emulator gör det endast möjligt för dina enheter att köras i hastigheter nära den ursprungliga. Därför bör du inte förvänta dig exakt samma resultat som på en fysisk enhet. Än värre är att du på virtuella enheter inte kan testa prestandan hos dina Android-appar mot andra riktmärken.

Det finns ingen tillförlitlig lösning som gör det möjligt att testa inbyggda appar i liknande omfattning med Android-emulatorer. Du behöver många fysiska enheter för komplexa tester över flera webbläsare av användargränssnitt och funktioner, så att du kan testa i Chrome, Firefox, Safari och andra webbläsare. 

Ingenjörer använder ramverk för testautomatisering som Espresso och Appium för att skapa testskript och köra dem på olika Android-enheter för att uppfylla jämförda kompatibilitetsstandarder. 

Android-emulator: styrkor och svagheter

Android-emulatorer efterliknar riktiga Android-enheter. Men de har också vissa begränsningar. 

Styrkor

Vissa funktioner hos din Android-emulator är snabb dataöverföring och kompatibilitet med fysiska sensorer som accelerometrar.

  1. Snabb dataöverföring

Android-emulatorer hjälper dig att överföra data snabbare och effektivare än fysiska enheter som du ansluter via USB.

En emulator erbjuder dra-och-släpp-funktioner som låter dig behålla .apk-filer på den virtuella enheten från din arbetsstation eller dator, vilket hjälper utvecklare att testa appar snabbt och effektivare.

  1. Kompatibilitet med fysiska sensorer 

Android-emulatorer är användbara om du använder fysiska sensorer som accelerometrar. När du testar ett visst appelement som i stor utsträckning är beroende av sensorer blir det enklare att anpassa inställningarna via de utökade kontrollerna i din emulator.

Svagheter

Några begränsningar hos Android-emulatorer är krav på ARM-processorer, diskutrymmesanvändning, komplexitet vid hårdvaruacceleration och bristande tillförlitlighet när det gäller att förstå appinteraktioner.

  1. Krav på ARM-processor

De flesta moderna PC-datorer eller bärbara datorer använder Intel x86, och den vanligaste tillgängliga Android-kretsuppsättningen är ARM v7a. Kom ihåg att värdens och gästens CPU-arkitekturer måste matcha för snabb emulering. Utan en enhet som innehåller en ARM-processor blir emuleringen därför bristfällig, särskilt för de flesta Android-enheter på marknaden.

  1. Diskutrymme

Din AVD-hanterare skapar separata kataloger för virtuella enhetsdata, cache och data från SD-kort. En virtuell enhet tar upp mer än 3 GB av det totala diskutrymmet och kan krascha om du inte har tillräckligt med utrymme vid start.

  1. Komplexitet vid hårdvaruacceleration

Hårdvaruacceleration förbättrar prestandan, men det är komplicerat att konfigurera processen även för avancerade utvecklare. Ibland leder acceleration av hårdvaran till fullständiga systemavbrott eller fel.

  1. Bristande tillförlitlighet

När det viktigaste är att förstå hur appar interagerar med värdenhetens miljö blir Android-emulatorer opålitliga.

Det blir till exempel svårt att känna till dina appars bakgrundsprocesser, utseendet på deras gränssnitt & ljusstyrkenivåer samt hur appar reagerar på olika pekgester. 

Vilka är de bästa Android-emulatorerna?

Det finns många bra alternativ när det gäller att välja en Android-emulator för ditt projekt, till exempel GameLoop och MEmu. Du kan hitta en lista över de bästa Android-emulatorerna som finns på marknaden här, tillsammans med tips om vilka som passar bäst för dina specifika behov.

Om du använder Linux kan vår jämförelse av Android-emulatorer för Linux hjälpa dig att hitta ett alternativ som fungerar bra med ditt operativsystem.

Slutsats

Android-emulatorer har revolutionerat enheternas funktioner och användarupplevelsen. De kan användas för många ändamål, till exempel för att testa appar och spela spel på stora skärmar.

En Android-emulator kan vara ett värdefullt tillskott till dina elektroniska enheter eftersom den gör det möjligt att ansluta olika delar av alla dina enheter samtidigt.

Med den perfekta Android-emulatorn kan du förbättra dina enheters kapacitet och funktionalitet samt förbättra din användarupplevelse av dem.

Relaterad podd som du kan läsa eller lyssna på: NÄSTA GENERATIONS MOBILTESTNING (MED ERAN KINSBRUNER FRÅN PERFECTO)