Hva er en Android-emulator & hvordan brukes den til testing?

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

Lurer du på hva en Android-emulator er, og hvordan den kan hjelpe deg med å teste appen din? Finn ut alt du trenger å vite, med eksempler, i denne artikkelen.

Per 2019 var det over 2,5 milliarder aktive Android-enheter i omløp. Dette tallet øker stadig. Du har kanskje tilgang til en Android-telefon eller -enhet. Men hva om du ikke har det? Det er her en Android-emulator kan være til hjelp. Den kan simulere et Android-operativsystem og et grensesnitt, slik at du kan teste Android-applikasjonen din. 

Denne artikkelen fremhever detaljert informasjon om Android-emulatorer, hvordan de fungerer, hvordan de brukes, og i hvilken grad de kan teste Android- og webapplikasjonene dine på riktig måte.

Jeg skal gå gjennom:

Hva er Android-emulatorer?

Android-emulatorer er programvare som er utviklet for å etterligne maskinvaren og programvaren til en mobil Android-enhet for utviklings- og testformål. Android-emulatorer kjører på Mac- eller PC-en din, slik at du kan bygge Android-sentrerte applikasjoner ved skrivebordet.

Skjermbilde av Android-emulator på Mac
Android-emulatorer kan kjøre på både Mac og PC, slik at alle brukere kan teste applikasjonene sine på Android.

Å spille eller teste spill er en populær grunn til å bruke Android-emulatorer, men du kan også bruke dem til å kjøre alle applikasjoner som er tilgjengelige i Google Play Store. Hvis du for eksempel kjører Instagram-appen din i en emulator, kan du laste opp bilder direkte fra datamaskinen – noe som ellers er umulig.

For å vite hva en Android-emulator kan gjøre, bør du først forstå hvordan den fungerer. 

Hvordan fungerer Android-emulatorer?

Android-emulatorer, som BlueStacks, NoxPlayer eller Genymotion, er programvareapplikasjoner som installeres på den stasjonære datamaskinen din, og som kan simulere programvaren og maskinvaren du bruker på en Android-enhet. Ved å bruke en slik emulator kan spillere spille mobilspill

Skjermbilde av Bluestack
BlueStacks, som vises i dette skjermbildet, er et eksempel på en populær Android-emulator.

Android-spill på PC og lar testere utvikle og teste Android-applikasjoner i sanntid. 

Emulatorer etterligner arkitekturen til systemet du retter deg mot. Derfor kan du finne emulatorer for alle mulige typer programvare og maskinvare, avhengig av behovene dine.

Hva er hurtigemulatoren (QEMU)?

Skjermbilde av hurtigemulatoren
Hurtigemulatoren brukes til å øke hastigheten på emulering gjennom maskinvareassistert virtualisering.

Som et åpen kildekode-verktøy kjører hurtigemulatoren på mange vertsdatamaskiner eller arbeidsstasjoner, for eksempel operativsystemer og CPU-er, for å emulere andre gjesteoperativsystemer og gjeste-CPU-er.

QEMU driver Android-emulatorer og etterligner maskinvaren på en gjesteenhet, slik at den samsvarer med maskinvaren på en vertsenhet. Det kjører som et program på datamaskinen din og oversetter gjestens binære applikasjonsgrensesnitt slik at det samsvarer med grensesnittet på en vertsenhet.

Oversettelsen er kompleks og tidkrevende, noe som gjør emulering svært langsom. Men hvis arkitekturene til verts- og gjesteenhetene ligner på hverandre, blir oversettelsen enkel og rask. 

Hvis verts- og gjesteenhetene dine har en lignende instruksjonsarkitektur, hopper QEMU over den binære oversettelsesprosessen. Den kjører gjesteenheten direkte på vertsenhetens CPU – en prosess kjent som maskinvareassistert virtualisering.

Tilpasning av enhetsarkitekturen gjøres ved hjelp 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

Hvordan fungerer hypervisorer?

VMware, et eksempel på et skjermbilde av en hypervisor
VMware er ett eksempel på en hypervisor.

En hypervisor eller virtuell maskinmonitor (VMM) er programvare som gjør det mulig for en enhet, for eksempel  en datamaskin, å støtte mange gjeste-VM-er ved å dele ressursene sine, som prosessorkraft og minne. Hypervisorer hjelper deg med å bruke systemets ressurser og gir større IT-mobilitet mellom ulike servere.

Det finnes to hovedtyper hypervisorer: Type 1 eller direkte på maskinvaren, og Type 2 eller vertsbaserte hypervisorer. 

  • Type 1-hypervisorer fungerer som lette operativsystemer som kjører direkte på vertens maskinvare. 
  • Type 2-hypervisorer kjører som programvare på et operativsystem, på samme måte som andre dataprogrammer og applikasjoner, slik at du kan kjøre en Android-app gjennom programvaren.

Før 2017 krevde Androids ARM-arkitektur oversettelse fra en emulator i Android-utviklingsverktøyet for å samsvare med de fleste arkitekturene som brukes på personlige datamaskiner.

Android lanserte utviklingsverktøyutgave 25.3.0, som forbedret emulatoren ved å gjøre det mulig å forbedre virtualiseringen gjennom en maskinvareassistert protokoll. Du trenger derfor en hypervisor for å utføre maskinvareassistert virtualisering, samtidig som du må være klar over at ulike PC-operativsystemer støtter ulike hypervisorer.

Intel bruker maskinvareakselerasjonskjøringsbehandleren HAXM som hypervisorelement for Windows-PC- og macOS-plattformer, mens Linux bruker kjernebasert virtuell maskin (KVM).

Androids binære applikasjonsgrensesnitt for x86 støtter maskinvareakselerasjon på ulike PC-er. Men hvis du vil øke den virtuelle ytelsen til enheten din, krever denne Android-emulatoren at du installerer og aktiverer hypervisoren.

Maskinvareakselerasjon gjør det mulig for en Android-emulator å kjøre den virtuelle enheten din med hastigheter som ligner på dem til CPU-en du arbeider med.  

Slik konfigurerer du en Android-emulator

Etter at utgave 25.3.0 ble lansert, distribuerte Android emulatoren separat fra SDK-verktøyene. Det kan være vanskelig å konfigurere Android-emulatoren, men her er en kort oversikt over prosessen. 

Maskinvarekrav

Du trenger Android SDK-utgave 26.1.1 eller nyere. PC-en eller den bærbare datamaskinen din bør ha en 64-biters eller x86-prosessor for å fungere med Android-emulatoren.

Hvis du bruker Android 8.1 eller nyere versjoner, må du ha et webkamera som kan ta opp bilder med 720p-oppløsning.

For de fleste enheter ber emulatoren deg om å tillate maskinvareakselerasjon av enhetens ytelse, og du trenger HAXM-utgave 7.2.0, Intels hypervisor, til dette. 

Brukere av Linux- og Windows-plattformer trenger ekstra enhetselementer, men dette avhenger av prosessorene deres.

  • For Linux kan brukere benytte AMD-virtualisering med SIMD-sett 3-utvidelser.
  • For Windows-PC kan brukere benytte AMD Android Studio-utgave 3.2 eller nyere, som fungerer med Windows-hypervisor-API-et.

Intel-brukere kan benytte Intel VT-x og Intel 64-støtte for funksjonen Execute Disable (XD) Bit.

Etter at du har installert Android-emulatoren, kan du nå åpne administrasjonsverktøyet for virtuelle Android-enheter (AVD Manager).

Administrasjonsverktøy for virtuelle Android-enheter (AVD)

Skjermbilde av administrasjonsverktøyet for virtuelle Android-enheter (AVD)
Administrasjonsverktøyet for virtuelle Android-enheter lar brukere installere et system-ABI som samsvarer med arkitekturen til prosessoren som brukes.

Administrasjonsverktøyet for virtuelle Android-enheter lar deg sette opp og tilpasse Android-enhetene dine.

Det leveres med forhåndskonfigurerte profiler for telefoner, nettbrett og TV-er – hver av dem spesifikt utformet for hver produsent. Det lar deg tilpasse eksterne funksjoner og skjermstørrelse samt importere en profil etter eget valg.

Google Play Store og testpakken for kompatibilitet er imidlertid bare tilgjengelig på et begrenset antall enheter – kun de som samsvarer med Androids kompatibilitetsprogram.

AVD-administratoren lar deg installere en system-ABI på den virtuelle enheten din, med en arkitektur som samsvarer med arbeidsprosessoren din, og som emulatoren anbefaler.

Verifiseringskonfigurasjonen for AVD-en din lar deg endre definerte programvare- eller maskinvareprofiler og konfigurere enhetsinnstillinger som navn og orientering.

Til slutt starter emulatoren spesifikasjonene for den virtuelle enheten din og aktiverer flere kontroller og justeringer, som geolokasjon, nettverksforsinkelse, enhetsrotasjon, fingeravtrykkssensor, kamera og batteritilstand, blant annet. 

Virtuelle enheter lar deg lagre instansene dine i samme tilstand som da du lukket dem, slik at du kan fortsette der du slapp tidligere.  

Hvordan brukes Android-simulatorer til testing?

Før utviklere utfører endringer i en gren, tester de kode i rørledninger. Etter en rask enhetstest med IDE-en begynner instrumenterings- og funksjonstesting.

Android-emulatoren din lar deg utføre instrumenterte tester, for eksempel ved å kontrollere at koden håndterer kjerneressurser og appspesifikke filer, samt teste funksjonaliteten til de eksterne avhengighetene dine.

Emulatorer hjelper også med appenes ytelsestesting for å kontrollere at interaksjonene er jevne, og at appene bruker enhetsressurser innenfor de nødvendige begrensningene. For nøyaktige resultater må du sørge for å måle prosessor- og grafikkapasiteten på enheten din.

Android-emulatoren din lar bare enhetene dine kjøre med hastigheter som ligger nær de opprinnelige. Derfor bør du ikke forvente nøyaktig samme resultater som på en fysisk enhet. Enda verre er det at du på virtuelle enheter ikke kan teste ytelsen til Android-appene dine mot andre referanseverdier.

Det finnes ingen pålitelig løsning som lar deg teste innebygde apper i tilsvarende skala med Android-emulatorer. Du trenger mange fysiske enheter for komplekse tester på tvers av nettlesere av brukergrensesnitt og funksjonalitet, slik at du kan teste på tvers av Chrome, Firefox, Safari og andre nettlesere. 

Ingeniører bruker rammeverk for testautomatisering som Espresso og Appium til å opprette testskript og kjøre dem på ulike Android-enheter for å oppfylle referansebaserte kompatibilitetsstandarder. 

Android-emulator: styrker og svakheter

Android-emulatorer etterligner virkelige Android-enheter. Men de har også noen begrensninger. 

Styrker

Noen av funksjonene til Android-emulatoren din omfatter rask dataoverføring og kompatibilitet med fysiske sensorer som akselerometre.

  1. Rask dataoverføring

Android-emulatorer hjelper deg med å overføre data raskere og mer effektivt enn fysiske enheter som du kobler til via USB.

En emulator tilbyr dra-og-slipp-funksjonalitet som lar deg beholde .apk-filer på den virtuelle enheten fra arbeidsstasjonen eller datamaskinen din, noe som hjelper utviklere med å teste apper raskt og mer effektivt.

  1. Kompatibilitet med fysiske sensorer 

Android-emulatorer er nyttige hvis du bruker fysiske sensorer, for eksempel akselerometre. Når du tester et bestemt appelement som i stor grad er avhengig av sensorer, blir det enklere å tilpasse innstillingene via de utvidede kontrollene i emulatoren.

More Articles

Svakheter

Noen begrensninger ved Android-emulatorer omfatter krav til ARM-prosessor, diskplassbruk, kompleksitet knyttet til maskinvareakselerasjon og upålitelighet når det gjelder å forstå interaksjon med apper.

  1. Krav til ARM-prosessor

De fleste moderne PC-er eller bærbare datamaskiner bruker Intel x86, og det vanligste tilgjengelige Android-brikkesettet er ARM v7a. Husk at prosessorarkitekturen til verts- og gjestesystemet må samsvare for rask emulering. Uten en enhet som inneholder en ARM-prosessor blir emuleringen derfor dårlig, særlig for de fleste Android-enheter på markedet.

  1. Diskplass

AVD-administratoren oppretter separate kataloger for å holde data for virtuelle enheter, hurtigbuffer og data fra SD-kort adskilt. Én virtuell enhet bruker over 3 GB av den totale diskplassen og kan krasje hvis du ikke har nok plass under oppstart.

  1. Kompleksitet ved maskinvareakselerasjon

Maskinvareakselerasjon forbedrer ytelsen, men det er komplisert å konfigurere prosessen selv for erfarne utviklere. Noen ganger fører akselerering av maskinvaren til fullstendig systemstans eller systemsvikt.

  1. Manglende pålitelighet

Når det blir vanskelig å forstå hvordan apper samhandler med vertsenhetens miljø, blir Android-emulatorer upålitelige.

Det blir for eksempel vanskelig å vite hvordan appenes bakgrunnsprosesser fungerer, hvordan grensesnittet ser ut og hvilke lysstyrkenivåer de har, samt hvordan appene reagerer på ulike berøringsbevegelser. 

Hvilke er de beste Android-emulatorene?

Det finnes mange gode alternativer når du skal velge en Android-emulator til prosjektet ditt, for eksempel GameLoop og MEmu. Du finner en liste over de beste Android-emulatorene på markedet her, sammen med tips om hvilke som fungerer best for dine spesifikke behov.

Hvis du bruker Linux, kan vår sammenligning av Android-emulatorer for Linux hjelpe deg med å finne et alternativ som fungerer godt med operativsystemet ditt.

Konklusjon

Android-emulatorer har revolusjonert enheters funksjonalitet og brukeropplevelsen. De kan brukes til mange formål, for eksempel testing av applikasjoner og spilling på store skjermer.

En Android-emulator kan være et verdifullt tillegg til de elektroniske enhetene dine fordi den lar deg koble sammen ulike aspekter ved alle enhetene dine samtidig.

Med den ideelle Android-emulatoren kan du forbedre enhetenes kapasitet og funksjonalitet, samt forbedre brukeropplevelsen din med dem.

Relatert podkast du kan lese eller lytte til: NESTE GENERASJONS MOBILTESTING (MED ERAN KINSBRUNER FRA 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