Vad är en Android-emulator och hur används den vid testning?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Undrar du vad en Android-emulator är och hur den kan hjälpa till när du testar din app? Ta reda på allt du behöver veta, tillsammans med exempel, i den här artikeln.

Å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 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:

Vad är Android-emulatorer?

Android-emulatorer är program som är utformade för att efterlikna maskinvaran och programvaran i en mobil Android-enhet för utvecklings- och teständamål. Android-emulatorer körs på din Mac eller PC så att du kan bygga Android-inriktade 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 alla applikationer 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 din dator – något som annars är omöjligt.

För att veta 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 programvaran och maskinvaran hos en Android-enhet. Med en sådan kan spelare spela mobil

Skärmbild av Bluestack
BlueStacks, som visas på 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 Snabbemulator (QEMU)?

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

Som ett verktyg med öppen källkod körs Snabbemulator på många värddatorer eller arbetsstationer, till exempel OS/CPU:er, för att emulera andra gäst-OS/gäst-CPU:er.

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ästens binära programgränssnitt 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 värd- och gästenheterna 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 hårdvaruassisterad virtualisering.

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

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

Have an account? Log In

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 programvara som gör det möjligt för en enhet, exempelvis en dator,  att stödja flera gästers virtuella maskiner genom att dela sina resurser, till exempel processorkraft och minne. Hypervisorer hjälper dig att använda ett systems resurser och erbjuder större IT-mobilitet mellan olika servrar.

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

  • Hypervisorer av typ 1 fungerar som lätta operativsystem som körs direkt på värdens maskinvara. 
  • Hypervisorer av typ 2 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 Developer Studio för att matcha de flesta arkitekturer som används i persondatorer.

Android släppte Developer Studio-version 25.3.0, som förbättrade emulatorn genom att göra det möjligt att förbättra virtualiseringen via ett hårdvaruassisterat protokoll. Därför behöver du en hypervisor för att utföra hårdvaruassisterad virtualisering, med tanke på att olika PC-operativsystem stöder olika hypervisorer.

Intel använder körningshanteraren för maskinvaruacceleration, 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 stöder hårdvaruacceleration på olika PC-datorer. Men om du vill snabba upp enhetens virtuella prestanda måste du installera och aktivera hypervisorn för denna Android-emulator.

Hårdvaruacceleration 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 version 25.3.0 släpptes distribuerade Android sin emulator separat från SDK-verktygen. Det kan vara svårt att konfigurera din Android-emulator, men här är en kort översikt över processen. 

Maskinvarukrav

Du behöver Android SDK-version 26.1.1 eller senare. Din PC eller bärbara dator bör ha en processor av typen 64- eller x86-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 spela in bilder med 720p.

För de flesta enheter uppmanar emulatorn dig att tillåta hårdvaruacceleration av enhetens prestanda, och du behöver HAXM-version 7.2.0, Intels 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-version 3.2 och senare, som fungerar med Windows hypervisor-API.

Intel-användare kan använda Intel VT-x och Intel 64-stödets funktion Execute Disable (XD) Bit.

Efter att du har installerat din Android-emulator kan du nu öppna Android Manager för virtuella 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 AVD-hanteraren kan du konfigurera och anpassa dina Android-enheter.

Den innehåller 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 som du väljer.

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

AVD-hanteraren låter dig installera ett system-ABI på din virtuella enhet som emulatorn rekommenderar och vars arkitektur matchar arkitekturen hos din processor.

Verifieringskonfigurationen för din AVD låter dig ändra definierade programvaru- eller hårdvaruprofiler och konfigurerar enhetsinställningar som namn och orientering.

Till slut startar din emulator specifikationerna för din virtuella enhet och aktiverar 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 kod i pipelines. Efter ett snabbt enhetstest med IDE:n börjar instrumenterad och funktionell testning.

Din Android-emulator låter dig köra instrumenterade tester, till exempel för att verifiera att kod hanterar kärnresurser och appspecifika filer samt testa funktionaliteten 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 låter endast dina enheter köra med hastigheter som ligger nära de 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 låter dig testa inbyggda appar i liknande omfattning med Android-emulatorer. Du behöver många verkliga enheter för komplexa test med 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 verkliga Android-enheter. Men de har också vissa begränsningar. 

Styrkor

Några funktioner hos din Android-emulator omfattar 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 snabbare 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 hög grad är beroende av sensorer blir det enklare att justera dina inställningar via de utökade kontrollerna i emulatorn.

More Articles

Svagheter

Några begränsningar hos Android-emulatorer är krav på ARM-processorer, användning av diskutrymme, komplexitet kring hårdvaruacceleration och bristande tillförlitlighet när det gäller att tolka appinteraktioner.

  1. Krav på ARM-processor

De flesta moderna datorer och 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 processorarkitekturer 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

AVD-hanteraren skapar separata kataloger för att hålla data för virtuella enheter, cache och data från SD-kort åtskilda. En virtuell enhet tar över 3 GB av det totala diskutrymmet och kan krascha om du inte har tillräckligt med utrymme vid starten.

  1. Komplexitet kring hårdvaruacceleration

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

  1. Bristande tillförlitlighet

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

Det blir till exempel svårt att känna till apparnas bakgrundsprocesser, gränssnittens utseende & ljusstyrkenivåer samt hur appar reagerar på olika tryckgester. 

Vilka är de bästa Android-emulatorerna?

Det finns många bra alternativ att välja mellan när det gäller att välja en Android-emulator för ditt projekt, till exempel GameLoop och MEmu. Du hittar en lista över de bästa Android-emulatorerna som finns på marknaden här, tillsammans med tips om vilka som fungerar för just dina 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 används bland annat för att testa applikationer 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 samtidigt koppla samman olika aspekter av alla dina enheter.

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

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

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author:

You may also like