In 2019 waren er wereldwijd meer dan 2,5 miljard actieve Android-apparaten in omloop. Dat aantal blijft alleen maar toenemen. Je hebt misschien 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?
- Hoe werken Android-emulators?
- Een Android-emulator instellen
- Hoe worden Android-simulators gebruikt voor tests?
- Android-emulator: sterke en zwakke punten
- Wat zijn de beste Android-emulators?
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 vanaf je bureau Android-gerichte applicaties kunt bouwen.

Games spelen of testen 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

Android-games op een pc spelen en kunnen testers Android-applicaties in realtime ontwikkelen en testen.
Emulators bootsen de architectuur na van het systeem waarop je je richt. Daarom zijn er, afhankelijk van je behoeften, emulators voor allerlei soorten software en hardware.
Wat is Quick Emulator (QEMU)?

Als opensourcetool draait Quick Emulator op veel hosts of werkstations, zoals besturingssystemen en CPU's, om andere gastbesturingssystemen en -CPU's te emuleren.
QEMU zorgt ervoor dat Android-emulators de hardware op een gastapparaat kunnen nabootsen, zodat deze overeenkomt met die op een hostapparaat. Het draait als een programma 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 instructiesets van je host- en gastapparaten vergelijkbaar zijn, 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 afstemmen van de apparaatarchitectuur gebeurt met behulp van een hypervisor.
Hoe werken hypervisors?

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 meer IT-mobiliteit tussen verschillende servers.
Er bestaan twee hoofdtypen hypervisors: Type 1, oftewel hypervisors zonder onderliggend besturingssysteem, en Type 2, oftewel gehoste hypervisors.
- Type 1-hypervisors fungeren 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 worden gebruikt.
Android bracht editie 25.3.0 van Developer Studio 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, vereist deze Android-emulator dat je de hypervisor installeert en inschakelt.
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
Na de release van editie 25.3.0 verspreidde Android zijn emulator afzonderlijk van de SDK-tools. Het instellen van je Android-emulator kan lastig zijn, maar hieronder vind je een korte schets 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 86-bit 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 beelden met een resolutie 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, die 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 het installeren van je Android-emulator heb je toegang tot Android Virtual Device Manager (AVD Manager).
Android Virtual Device Manager (AVD)

Met je AVD-manager kun je je Android-apparaten instellen en uitlijnen.
De manager wordt geleverd met vooraf geconfigureerde profielen voor telefoons, tablets en tv's – elk speciaal ontworpen voor iedere fabrikant. Je kunt er externe mogelijkheden en schermgrootte mee aanpassen en een profiel naar keuze importeren.
De Google Play Store en de bijbehorende testsuite voor compatibiliteit zijn echter slechts beschikbaar op een beperkt aantal apparaten – alleen apparaten die voldoen aan het compatibiliteitsprogramma van Android.
Met de AVD-manager kun je op je virtuele apparaat een systeem-ABI installeren die de emulator aanbeveelt en waarvan de architectuur overeenkomt met die van de processor waarop je werkt.
Met de verificatieconfiguratie van je AVD kun je gedefinieerde software- of hardwareprofielen wijzigen en apparaatinstellingen zoals de naam en oriëntatie configureren.
Je emulator start uiteindelijk op basis van je specificaties voor virtuele apparaten en maakt aanvullende besturingselementen en aanpassingen mogelijk, zoals geolocatie, netwerklatentie, apparaatrotatie, vingerafdruksensor, camera, batterijstatus en andere.
Met virtuele apparaten kun je je instanties opslaan in dezelfde staat waarin je ze sluit, zodat je verder kunt gaan waar je eerder bent gestopt.
Hoe worden Android-simulators gebruikt voor testen?
Voordat ontwikkelaars wijzigingen naar een codevertakking doorvoeren, testen ze code in pijplijnen. Na een snelle unittest met de IDE beginnen instrumentatie- 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 apparaten alleen op bijna native snelheden werken. Daarom moet je niet precies dezelfde resultaten als op een native apparaat verwachten. Erger nog, op virtuele apparaten kun je de prestaties van je Android-apps niet vergelijken met andere benchmarks.
Er is geen betrouwbare oplossing waarmee je native apps op vergelijkbare schaal met Android-emulators kunt testen. Voor complexe tests in meerdere browsers van de gebruikersinterface en functionaliteiten heb je veel echte apparaten nodig, zodat je kunt testen in Chrome, Firefox, Safari en andere browsers.
Engineers gebruiken frameworks voor testautomatisering zoals Espresso en Appium om testscripts te maken en deze op verschillende Android-apparaten uit te voeren, zodat aan compatibiliteitsnormen voor 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.
- Snelle gegevensoverdracht
Android-emulators helpen je gegevens sneller en efficiënter over te dragen dan 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.
- Compatibiliteit met fysieke sensoren
Android-emulators zijn nuttig als je fysieke sensoren zoals versnellingsmeters gebruikt. Wanneer je een bepaald app-element test dat grotendeels afhankelijk is van sensoren, wordt het eenvoudiger om je instellingen via de uitgebreide besturingselementen van je emulator af te stemmen.
Zwakke punten
Enkele beperkingen van Android-emulators zijn vereisten voor ARM-processors, schijfgebruik, complexiteit van hardwareversnelling en onbetrouwbaarheid bij het begrijpen van app-interacties.
- Vereisten voor ARM-processors
De meeste moderne pc's of laptops gebruiken Intel x86 en de meest gangbare Android-chipset is ARM v7a. Onthoud 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.
- Schijfruimte
Je AVD-manager 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 3 GB van de totale schijfruimte in beslag en kan crashen als je tijdens het opstarten onvoldoende ruimte hebt.
- 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 systeemuitval of een storing.
- Gebrek aan betrouwbaarheid
Wanneer het aankomt op het begrijpen van de interacties van apps met de omgeving van het hostapparaat, worden Android-emulators onbetrouwbaar.
Zo wordt het moeilijk om inzicht te krijgen in de achtergrondprocessen van je apps, het uiterlijk van de gebruikersinterface en de helderheidsniveaus, evenals de manier waarop apps reageren op verschillende aanraakbewegingen.
Wat zijn de beste Android-emulators?
Er zijn veel geweldige opties beschikbaar 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 momenteel op de markt verkrijgbaar zijn, samen met tips over welke het beste bij jouw specifieke behoeften passen.
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 ingrijpend 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 versterken.
Gerelateerde podcast die je kunt lezen/beluisteren: MOBIEL TESTEN VAN DE VOLGENDE GENERATIE (MET ERAN KINSBRUNER VAN PERFECTO)
