Wat is een Android-emulator en hoe wordt deze gebruikt voor testen?

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

Benieuwd wat een Android-emulator is en hoe deze kan helpen bij het testen van je app? Ontdek in dit artikel alles wat je moet weten, inclusief voorbeelden.

Vanaf 2019 waren er wereldwijd meer dan 2,5 miljard actieve Android-apparaten in omloop. Dat aantal blijft alleen maar toenemen. Misschien heb je toegang tot een Android-telefoon of -apparaat. Maar wat als dat niet zo is? Daar kan een Android-emulator uitkomst bieden; deze kan een Android-besturingssysteem en -interface simuleren, zodat je je Android-applicatie kunt testen. 

Dit artikel bevat gedetailleerde informatie over Android-emulators, hoe ze werken, hoe ze worden gebruikt en in hoeverre ze je Android- en webapplicaties correct kunnen testen.

Ik bespreek:

Wat zijn Android-emulators?

Android-emulators zijn software die is ontworpen om de hardware en software van een mobiel Android-apparaat na te bootsen voor ontwikkelings- en testdoeleinden. Android-emulators draaien op je Mac of pc, zodat je aan je bureau Android-gerichte applicaties kunt bouwen.

Schermafbeelding van Android-emulator op Mac
Android-emulators kunnen zowel op Mac als pc draaien, zodat elke gebruiker zijn applicaties op Android kan testen.

Het spelen van games of het testen ervan is een populaire reden om Android-emulators te gebruiken, maar je kunt ze ook gebruiken om elke applicatie uit de Google Play Store uit te voeren. Als je bijvoorbeeld je Instagram-app in een emulator uitvoert, kun je rechtstreeks vanaf je computer foto's uploaden – iets wat anders onmogelijk is.

Om te weten wat een Android-emulator kan doen, moet je eerst begrijpen hoe deze werkt. 

Hoe werken Android-emulators?

Android-emulators, zoals BlueStacks, NoxPlayer of Genymotion, zijn softwareapplicaties die op je desktopcomputer worden geïnstalleerd en de software- en hardware-ervaring van het gebruik van een Android-apparaat kunnen simuleren. Met een dergelijke emulator kunnen gamers mobiele games op hun pc spelen.

Schermafbeelding van BlueStacks
BlueStacks, dat in deze schermafbeelding wordt getoond, is een voorbeeld van een populaire Android-emulator.

Testers kunnen er Android-applicaties in realtime mee ontwikkelen en testen. 

Emulators bootsen de architectuur na van het systeem waarop je je richt. Daarom vind je emulators voor allerlei soorten software en hardware, afhankelijk van je behoeften.

Wat is een snelle emulator (QEMU)?

Schermafbeelding van een snelle emulator
Een snelle emulator wordt gebruikt om emulatie te versnellen door middel van hardwareondersteunde virtualisatie.

Als opensourceprogramma draait een snelle emulator op veel hosts of werkstations, zoals besturingssystemen en CPU's, om andere gastbesturingssystemen en -CPU's te emuleren.

QEMU stuurt Android-emulators aan om hardware op een gastapparaat na te bootsen, zodat deze overeenkomt met die op een hostapparaat. Het programma draait op je computer en vertaalt de binaire applicatie-interface van de gast, zodat deze overeenkomt met die op een hostapparaat.

De vertaling is complex en tijdrovend, waardoor emulatie extreem traag is. Maar als de architecturen van de host- en gastapparaten vergelijkbaar zijn, wordt vertalen eenvoudig en snel. 

Als de instructiearchitectuur van je host- en gastapparaten vergelijkbaar is, slaat QEMU het binaire vertaalproces over. Het voert het gastapparaat onmiddellijk rechtstreeks uit op de CPU van het hostapparaat – een proces dat bekendstaat als hardwareondersteunde virtualisatie.

Het op elkaar afstemmen van de apparaatarchitectuur gebeurt met behulp van een hypervisor. 

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

Have an account? Log In

Hoe werken hypervisors?

Schermafbeelding van VMware, een voorbeeld van een hypervisor
VMware is een voorbeeld van een hypervisor.

Een hypervisor of virtuele-machinemonitor (VMM) is software waarmee een apparaat, bijvoorbeeld  een computer, meerdere gast-VM's kan ondersteunen door zijn bronnen, zoals verwerkingscapaciteit en geheugen, te delen. Hypervisors helpen je de bronnen van een systeem te gebruiken en bieden grotere IT-mobiliteit tussen verschillende servers.

Er bestaan twee hoofdtypen hypervisors: Type 1 of bare-metal-hypervisors, en Type 2 of gehoste hypervisors. 

  • Type 1-hypervisors functioneren als lichtgewicht besturingssystemen die rechtstreeks op de hardware van een host draaien. 
  • Type 2-hypervisors draaien als software op een besturingssysteem, net als andere computertoepassingen en programma's, waardoor je via de software een Android-app kunt uitvoeren.

Vóór 2017 vereiste de ARM-architectuur van Android vertaling vanuit een emulator van Android Developer Studio om overeen te komen met de meeste architecturen die op personal computers werden gebruikt.

Android bracht Developer Studio editie 25.3.0 uit, die de emulator verbeterde door virtualisatie via een hardwareondersteund protocol mogelijk te maken. Je hebt dus een hypervisor nodig om hardwareondersteunde virtualisatie uit te voeren, waarbij je er rekening mee moet houden dat verschillende pc-besturingssystemen verschillende hypervisors ondersteunen.

Intel gebruikt Hardware Acceleration Execution Manager, HAXM, als hypervisorelement voor Windows-pc's en macOS-platforms, terwijl Linux de Kernel-based Virtual Machine, KVM, gebruikt.

De Android Application Binary Interface x86 ondersteunt hardwareversnelling op verschillende pc's. Maar als je de virtuele prestaties van je apparaat wilt versnellen, moet je voor deze Android-emulator de hypervisor installeren en inschakelen.

Hardwareversnelling zorgt ervoor dat een Android-emulator je virtuele apparaat uitvoert met snelheden die vergelijkbaar zijn met die van de CPU waarop je werkt.  

Een Android-emulator instellen

Nadat editie 25.3.0 was uitgebracht, distribueerde Android zijn emulator afzonderlijk van de SDK-tools. Het instellen van je Android-emulator kan lastig zijn, maar hier volgt een kort overzicht van het proces. 

Hardwarevereisten

Je hebt Android SDK editie 26.1.1 of hoger nodig. Je pc of laptop moet een processor van het type 64- of x86-bits hebben om met de Android-emulator te werken.

Als je Android 8.1 of een hogere versie gebruikt, moet je beschikken over een webcam die frames van 720p kan vastleggen.

Bij de meeste apparaten vraagt de emulator je om hardwareversnelling van de prestaties van je apparaat toe te staan; hiervoor heb je HAXM editie 7.2.0 van de Intel-hypervisor nodig. 

Gebruikers van Linux- en Windows-platforms hebben aanvullende apparaatelementen nodig, maar dit hangt af van hun processors.

  • Voor Linux kunnen gebruikers vertrouwen op het AMD Virtualization-systeem met SIMD-set 3-extensies.
  • Voor Windows-pc's kunnen gebruikers AMD Android Studio editie 3.2 en hoger gebruiken, dat werkt met de Windows-hypervisor-API.

Intel-gebruikers kunnen Intel VT-x en Intel 64-ondersteuning voor de functie Execute Disable (XD) Bit gebruiken.

Na de installatie van je Android-emulator heb je nu toegang tot Android Manager voor virtuele apparaten (AVD Manager).

Beheerder voor virtuele Android-apparaten (AVD)

Schermafbeelding van de beheerder voor virtuele Android-apparaten (AVD)
Met de beheerder voor virtuele Android-apparaten kun je een systeem-ABI installeren die overeenkomt met de architectuur van de gebruikte processor.

Met je AVD-manager kun je je Android-apparaten configureren en uitlijnen.

De manager wordt geleverd met vooraf geconfigureerde profielen voor telefoons, tablets en tv's – elk specifiek ontworpen voor iedere fabrikant. Je kunt er externe mogelijkheden en de schermgrootte mee aanpassen en een profiel naar keuze importeren.

Google Play Store en de bijbehorende testsuite voor compatibiliteit zijn echter slechts beschikbaar op een beperkt aantal apparaten – alleen op apparaten die overeenkomen met het compatibiliteitsprogramma van Android.

Met de AVD-beheerder kun je op je virtuele apparaat een systeem-ABI installeren die de emulator aanbeveelt en waarvan de architectuur overeenkomt met die van je werkprocessor.

Met de verificatieconfiguratie van je AVD kun je gedefinieerde software- of hardwareprofielen aanpassen en apparaatinstellingen zoals naam en oriëntatie configureren.

Uiteindelijk start je emulator de specificaties van je virtuele apparaat en biedt deze extra besturingselementen en aanpassingen, zoals geolocatie, netwerklatentie, apparaatrotatie, de vingerafdruksensor, de camera en de batterijstatus, naast andere opties. 

Met virtuele apparaten kun je je instanties opslaan in dezelfde toestand waarin je ze sluit, zodat je later verder kunt gaan waar je eerder bent gestopt.  

Hoe worden Android-simulators gebruikt voor tests?

Voordat ontwikkelaars wijzigingen naar een vertakking doorvoeren, testen ze code in pijplijnen. Na een snelle unittest met de IDE beginnen instrumentele en functionele tests.

Met je Android-emulator kun je geïnstrumenteerde tests uitvoeren, bijvoorbeeld om te controleren of code omgaat met kernbronnen en app-specifieke bestanden en om de functionaliteit van je externe afhankelijkheden te testen.

Emulators helpen ook bij prestatietests van apps, om te controleren of interacties soepel verlopen en apps de apparaatbronnen binnen de vereiste beperkingen gebruiken. Zorg voor nauwkeurige resultaten dat je de CPU- en grafische mogelijkheden van je apparaat meet.

Met je Android-emulator kunnen je apps alleen met bijna oorspronkelijke snelheden werken. Daarom moet je geen exact oorspronkelijke resultaten verwachten. Op virtuele apparaten kun je de prestaties van je Android-apps bovendien niet testen aan de hand van andere benchmarks.

Er is geen betrouwbare workaround waarmee je systeemeigen apps op vergelijkbare schaal met Android-emulators kunt testen. Voor complexe tests voor meerdere browsers van de gebruikersinterface en functionaliteiten heb je veel echte apparaten nodig, zodat je kunt testen in Chrome, Firefox, Safari en andere browsers. 

Ingenieurs gebruiken testautomatiseringsframeworks zoals Espresso en Appium om testscripts te maken en deze op verschillende Android-apparaten uit te voeren, zodat aan compatibiliteitsnormen op basis van benchmarks kan worden voldaan. 

Android-emulator: sterke en zwakke punten

Android-emulators bootsen echte Android-apparaten na. Ze hebben echter ook enkele beperkingen. 

Sterke punten

Enkele mogelijkheden van je Android-emulator zijn snelle gegevensoverdracht en compatibiliteit met fysieke sensoren zoals versnellingsmeters.

  1. Snelle gegevensoverdracht

Met Android-emulators kun je gegevens sneller en efficiënter overdragen dan met fysieke apparaten die je via USB aansluit.

Een emulator biedt mogelijkheden voor slepen en neerzetten, waarmee je .apk-bestanden vanaf je werkstation of computer op het virtuele apparaat kunt bewaren. Hierdoor kunnen ontwikkelaars apps sneller en effectiever testen.

  1. Compatibiliteit met fysieke sensoren 

Android-emulators zijn nuttig als je fysieke sensoren zoals versnellingsmeters gebruikt. Wanneer je een bepaald onderdeel van een app test dat grotendeels afhankelijk is van sensoren, wordt het eenvoudiger om je instellingen via de uitgebreide besturingselementen van je emulator af te stemmen.

More Articles

Zwakke punten

Enkele beperkingen van Android-emulators zijn vereisten voor ARM-processors, schijfgebruik, complexiteit van hardwareversnelling en onbetrouwbaarheid bij het interpreteren van app-interacties.

  1. Vereisten voor ARM-processors

De meeste moderne pc's of laptops gebruiken Intel x86 en de meest gangbare Android-chipset is ARM v7a. Houd er rekening mee dat voor snelle emulatie de CPU-architecturen van de host en de gast moeten overeenkomen. Zonder een apparaat met een ARM-processor verloopt emulatie daarom slecht, vooral voor de meeste Android-apparaten op de markt.

  1. Schijfruimte

Je AVD-beheerder maakt afzonderlijke mappen om gegevens van virtuele apparaten, cache en gegevens van SD-kaarten apart op te slaan. Eén virtueel apparaat neemt meer dan 3GB van de totale schijfruimte in beslag en kan crashen als er tijdens het opstarten onvoldoende ruimte beschikbaar is.

  1. Complexiteit van hardwareversnelling

Hardwareversnelling verbetert de prestaties, hoewel het instellen ervan zelfs voor ervaren ontwikkelaars complex is. Soms leidt het versnellen van je hardware tot volledige uitval of een storing van het systeem.

  1. Gebrek aan betrouwbaarheid

Wanneer het aankomt op het begrijpen van de interacties van apps met de omgeving van het hostapparaat, worden Android-emulators onbetrouwbaar.

Het wordt bijvoorbeeld moeilijk om de achtergrondprocessen van je apps, de weergave aan de voorkant & helderheidsniveaus en de manier waarop apps reageren op verschillende aanraakbewegingen te kennen. 

Wat zijn de beste Android-emulators?

Er zijn veel uitstekende opties als het gaat om het kiezen van een Android-emulator voor je project, zoals GameLoop en MEmu. Je vindt hier een lijst met de beste Android-emulators die op de markt verkrijgbaar zijn, samen met tips over welke het beste aansluiten bij jouw specifieke behoeften.

Als je Linux gebruikt, kan onze vergelijking van Android-emulators voor Linux je helpen een optie te vinden die goed werkt met jouw besturingssysteem.

Conclusie

Android-emulators hebben de mogelijkheden van apparaten en de gebruikerservaring revolutionair veranderd. Ze dienen veel doelen, zoals het testen van applicaties en gamen op grote schermen.

Een Android-emulator kan een waardevolle aanvulling zijn op je elektronische apparaten, omdat je hiermee verschillende aspecten van al je apparaten tegelijkertijd met elkaar kunt verbinden.

Met de ideale Android-emulator kun je de mogelijkheden en functionaliteit van je apparaten verbeteren en je gebruikerservaring ermee optimaliseren.

Gerelateerde podcast die je kunt lezen/beluisteren: TESTEN VAN MOBIELE APPS VAN DE VOLGENDE GENERATIE (MET ERAN KINSBRUNER VAN 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