Hva er en Android-emulator, og 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.

I 2019 var det over 2,5 milliarder aktive Android-enheter i bruk. 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 grensesnitt slik at du kan teste Android-applikasjonen din. 

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

Jeg skal diskutere:

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 utvikle 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 Butikk. 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å datamaskinen din, og som kan simulere programvaren og maskinvaren du bruker på en Android-enhet. Ved å bruke en slik emulator kan spillere spille mobil

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

Android-spill på PC-en, og testere kan utvikle og teste Android-applikasjoner i sanntid. 

Emulatorer etterligner arkitekturen til systemet du målretter mot. Derfor finnes det emulatorer for alle slags programvarer og maskinvarer, avhengig av behovene dine.

Hva er Quick Emulator (QEMU)?

Skjermbilde av Quick Emulator
Quick Emulator brukes til å fremskynde emulering gjennom maskinvareassistert virtualisering.

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

QEMU driver Android-emulatorer ved å etterligne 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 treg. Men hvis arkitekturene til verts- og gjesteenhetene er like, blir oversettelsen enkel og rask. 

Hvis verts- og gjesteenhetene 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 til 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 maskinvarebaserte hypervisorer, 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 binær oversettelse i Android Studio-emulatoren for å samsvare med de fleste arkitekturene som ble brukt på personlige datamaskiner.

Android lanserte Developer Studio-utgave 25.3.0, som forbedret emulatoren ved å gjøre det mulig å forbedre virtualiseringen gjennom en maskinvareassistert protokoll. Derfor trenger du en hypervisor for å utføre maskinvareassistert virtualisering, samtidig som du må være oppmerksom på at ulike PC-operativsystemer støtter ulike hypervisorer.

Intel bruker HAXM, en behandler for maskinvareakselerasjon, som hypervisorelement for Windows-PC-er og macOS-plattformer, mens Linux bruker en kjernebasert virtuell maskin (KVM).

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

Maskinvareakselerasjon gjør det mulig for en Android-emulator å kjøre den virtuelle enheten med hastigheter som ligner på hastigheten 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 sine. 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 en oppløsning på 720p.

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 Virtualization-systemet med SIMD-sett 3-utvidelser.
  • For Windows-PC-er 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 funksjonaliteten Execute Disable (XD) Bit.

Etter at du har installert Android-emulatoren, kan du nå få tilgang til Androids administrator for virtuelle enheter (AVD Manager).

Administrator for virtuelle Android-enheter (AVD)

Skjermbilde av administratoren for virtuelle Android-enheter (AVD)
Administrator for virtuelle Android-enheter lar brukere installere en system-ABI som samsvarer med arkitekturen til prosessoren som brukes.

AVD Manager lar deg konfigurere og justere Android-enhetene dine.

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

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

AVD Manager lar deg installere en system-ABI på den virtuelle enheten din som emulatoren anbefaler, og hvis arkitektur samsvarer med arkitekturen til prosessoren du bruker.

Bekreftelseskonfigurasjonen 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 og gir deg tilgang til flere kontroller og justeringer, som geolokasjon, nettverksforsinkelse, enhetsrotasjon, fingeravtrykksensor, kamera og batteristatus, blant annet. 

Virtuelle enheter lar deg lagre instansene 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 implementerer endringer i en gren, tester de koden i kjøringsforløp. Etter en rask enhetstest med IDE-en begynner instrumentell og funksjonell testing.

Android-emulatoren lar deg kjøre instrumenterte tester, for eksempel for å 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 enhetens ressurser innenfor de nødvendige begrensningene. For å få nøyaktige resultater må du sørge for å måle CPU- og grafikkapasiteten på enheten din.

Android-emulatoren lar bare enhetene dine kjøre med tilnærmet opprinnelig hastighet. Derfor bør du ikke forvente helt tilsvarende 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 opprinnelige 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 i Chrome, Firefox, Safari og andre nettlesere. 

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

Android-emulator: styrker og svakheter

Android-emulatorer etterligner ekte 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, 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 som akselerometre. Når du tester et bestemt appelement som i stor grad er avhengig av sensorer, blir det enklere å justere innstillingene via de utvidede kontrollene i emulatoren.

More Articles

Svakheter

Noen av begrensningene ved Android-emulatorer omfatter krav til ARM-prosessor, diskplassbruk, kompleks maskinvareakselerasjon og upålitelig håndtering av appinteraksjoner.

  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 verts- og gjesteprosessorarkitekturen må samsvare for rask emulering. Uten en enhet som inneholder en ARM-prosessor blir emuleringen derfor dårlig, særlig for de fleste Android-enhetene på markedet.

  1. Diskplass

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

  1. Kompleks maskinvareakselerasjon

Maskinvareakselerasjon forbedrer ytelsen, selv om 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 avgjørende er å forstå hvordan apper samhandler med vertsenhetsmiljøet, blir Android-emulatorer upålitelige.

Det blir for eksempel vanskelig å vite hvordan appenes bakgrunnsprosesser, utseende på frontenden & lysstyrkenivåer fungerer, samt hvordan appene reagerer på ulike berøringsbevegelser. 

Hva er de beste Android-emulatorene?

Det finnes mange gode alternativer når det gjelder å velge en Android-emulator til prosjektet ditt, for eksempel GameLoop og MEmu. Du finner en liste over de beste Android-emulatorene som er tilgjengelige på markedet her, sammen med tips om hvilke som passer til 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 enhetenes funksjonalitet og brukeropplevelsen. De brukes til mange formål, som testing av applikasjoner og spilling på store skjermer.

En Android-emulator kan være et nyttig 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, og samtidig forbedre brukeropplevelsen din.

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