Android Emulator ist eine Android Studio-Komponente, die eine vollständige virtuelle Kopie eines Android-Geräts auf dem Computer des Entwicklers ausführt. Der Emulator verwendet QEMU zur Übersetzung von ARM-Befehlen in die x86_64-Architektur des Hosts. Google-Dokumentation beschreibt den vollständigen Zyklus der Einrichtung virtueller AVD-Geräte und Hardwarebeschleunigung.
Wichtige Punkte
Android Emulator ist ein virtuelles Android-Gerät, das auf QEMU (Quick EMUlator) basiert und die Android-Hardwareplattform emuliert. Im Gegensatz zum iOS Simulator übersetzt Android Emulator ARM-Befehle vollständig, sodass für die mobile Architektur kompilierter Code auf einem x86_64-Host ausgeführt werden kann.
Google veröffentlichte Android Emulator im Jahr 2007 zusammen mit der ersten Version des Android SDK. Seitdem hat sich der Emulator von einer langsamen Nur-ARM-Lösung zu einem Hochleistungssystem mit GPU-Unterstützung, Hardwarebeschleunigung und Sensor-Emulation entwickelt. Laut Google (Android Developer Blog, 2025) läuft der moderne Emulator mit HAxM 4- bis 5-mal schneller als die erste Generation.
Der Emulator unterstützt alle Komponenten eines Android-Geräts: CPU, GPU, RAM, Speicher, Touchscreen, Beschleunigungssensor, Gyroskop, GPS, Kamera, Akku, NFC, Bluetooth und Wi-Fi. Der Entwickler kann über Extended Controls eingehende Anrufe, SMS, verschiedene Netzwerksignalstärken und Geolokalisierung simulieren.
Android Emulator verwendet System-Images, die über den SDK Manager heruntergeladen werden. Jedes System-Image enthält eine vollständige Kopie der Android-Firmware für das ausgewählte API-Level und die Zielprozessorarchitektur. Images sind mit verschiedenen Architekturen verfügbar: x86_64 (empfohlen mit HAxM), ARM64 (für ARM-Kompatibilitätstests) und Google APIs (mit vorinstallierten Google Play Services). Separate Images sind auch für Wear OS, Android TV und Automotive verfügbar.
// Emulatortyp im Code prüfen
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("App wird im Emulator ausgeführt")
}AVD (Android Virtual Device) ist eine virtuelle Gerätekonfiguration für den Emulator. Der AVD Manager in Android Studio ermöglicht das Erstellen von Geräten mit jeder beliebigen Kombination von Eigenschaften: Modell, Bildschirmgröße, Pixeldichte, RAM-Größe, Speichergröße und Android-Version.
| AVD-Parameter | Empfehlung für Entwicklung | Empfehlung für Tests |
|---|---|---|
| Architektur | x86_64 (mit HAxM) | ARM64 (reine Emulation) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Interner Speicher | 8-16 GB | 4-8 GB |
| API-Level | Neueste stabile Version | Mindestens unterstützt |
| Google Play Services | Aktivieren | Nach Bedarf |
AVD erstellen erfolgt über den Device Manager in Android Studio: Wählen Sie ein Hardware-Profil (Pixel, Nexus, Galaxy und andere), ein System-Image und konfigurieren Sie die Parameter. Nach der Erstellung erscheint das Gerät in der Run Configurations-Liste für den sofortigen App-Start.
Der Emulator unterstützt Quick Boot — er speichert den AVD-Zustand als Snapshot und stellt ihn beim nächsten Start wieder her. Die Startzeit reduziert sich von 30-60 Sekunden auf 2-5 Sekunden. Zur Rückkehr in einen sauberen Zustand verwenden Sie Cold Boot Now im AVD Manager.
ARM-Übersetzung ist eine Schlüsseltechnologie von Android Emulator, die ARM-Befehle spontan in x86_64 konvertiert. Ohne Übersetzung könnte der Emulator nur x86_64-Images ausführen, was die Testmöglichkeiten einschränkt. Google verwendet libhoudini für die ARM→x86-Übersetzung und Intel-Bibliotheken für die HAXM-Beschleunigung.
# HAxM-Status unter Windows prüfen
sc query "IntelHaxm"
# HAxM über SDK Manager installieren
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Emulator mit Hardwarebeschleunigung starten
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) ist ein Virtualisierungstreiber für Intel VT-x-Prozessoren, der den Emulator um das 3- bis 5-fache beschleunigt. Verwenden Sie unter Windows mit AMD-Prozessor Windows Hyper-V Platform und WHPX. Ohne Hardwarebeschleunigung läuft der Emulator langsam mit Animationsverzögerungen von bis zu 1-2 Sekunden.
Unter macOS mit Apple Silicon (M-Serie) funktioniert die Hardwarebeschleunigung nativ über Hypervisor.framework. Laut Google (Android Emulator Release Notes 2025) erreicht der Emulator auf M2 Max 95% der Leistung eines echten Geräts bei grundlegenden Operationen.
Die Wahl zwischen Emulator und echtem Gerät hängt von der Entwicklungsphase ab. Auf dem Emulator ist das Entwickeln und Debuggen bequem: schneller Start, sofortige Bereitstellung, Extended Controls zur Sensorsimulation. Auf einem echten Gerät erfolgen die abschließenden Leistungs-, Akku- und Hardwaretests.
| Szenario | Emulator | Echtes Gerät |
|---|---|---|
| UI-Entwicklung | Ja (schnell) | Nein (langsames Deployment) |
| Leistungstests | Nein (überhöhte Werte) | Ja (echte Messungen) |
| Sensor-Emulation (GPS, NFC) | Ja (Extended Controls) | Eingeschränkt |
| Stromverbrauch | Nicht unterstützt | Ja (Battery Historian) |
| Netzwerktests (2G/3G/4G/5G) | Ja (Geschwindigkeitssimulation) | Ja (mit SIM-Karte) |
| CI/CD-Automatisierung | Ja (keine physischen Geräte) | Schwierig (Gerätefarm) |
Die Leistung des Emulators mit Hardwarebeschleunigung ist oft höher als die eines echten Budget-Geräts. Führen Sie daher abschließende Tests auf echten Geräten mit dem Ziel-Leistungsniveau durch.
Das Erkennen der Laufzeitumgebung in Kotlin ist nützlich, um fehlerhaften Code zu deaktivieren oder Debug-Informationen hinzuzufügen. Android stellt Build.FINGERPRINT, Build.PRODUCT und Build.HARDWARE für diesen Zweck bereit.
object EmulatorDetector {
val isEmulator: Boolean
get() = Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.contains("emulator")
|| Build.HARDWARE == "ranchu"
|| Build.HARDWARE == "goldfish"
fun logEnvironment() {
if (isEmulator) {
Log.d("EmulatorDetector", "Umgebung: Emulator")
}
}
}Verwendung eines Emulator-Detektors hilft beim Debugging: Auf dem Emulator können Sie erweiterte Protokolle aktivieren, Animationen deaktivieren oder echte API-Aufrufe durch Mockups ersetzen. Vermeiden Sie die Prüfung in Produktions-Builds, es sei denn, sie ist für die Geschäftslogik der App erforderlich.
Android Emulator wird für automatisierte Tests auf CI-Servern verwendet. Zum Ausführen von Tests müssen Sie ein AVD erstellen, den Emulator starten und auf das vollständige Laden des Systems warten. Gradle Managed Devices vereinfacht diesen Prozess: Die AVD-Konfiguration wird in build.gradle.kts beschrieben.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Zum manuellen Starten des Emulators verwenden Sie die Befehlszeile: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Das Flag -no-window deaktiviert die grafische Oberfläche für Serverumgebungen, und -gpu swiftshader_indirect bietet Software-Rendering ohne Host-GPU.
Extended Controls in Android Emulator bietet leistungsstarke Werkzeuge zur Simulation von Netzwerkbedingungen: Latenz, Bandbreite und Netzwerktyp (GPRS, EDGE, 3G, 4G, 5G). Damit können Sie das App-Verhalten bei langsamen Verbindungen testen, ohne physisch in ein Gebiet mit schlechter Abdeckung reisen zu müssen.
Sensor-Simulation umfasst Beschleunigungssensor, Gyroskop und Magnetometer über virtuelle 3D-Gerätemodelle. Für GPS können Sie GPX-Dateien mit Routen laden — der Emulator simuliert Bewegungen entlang von Koordinaten, was für das Testen von Navigations-Apps entscheidend ist. Die Kamera wird über die Host-Webcam oder Bild laden emuliert.
Multi-Display in Android Emulator unterstützt mehrere Bildschirme für Tablets und faltbare Geräte. Extended Controls ermöglicht das Ändern von Ausrichtung, Bildschirmgröße und Pixeldichte (DPI) ohne Neustart des Emulators. Zum Testen faltbarer Geräte stehen Foldable-Modi mit Umschaltung zwischen gefaltetem und entfaltetem Zustand zur Verfügung.
Der Emulator unterstützt nicht nur Smartphones, sondern auch Wear OS und Android TV. Für Wear OS stehen runde und rechteckige AVD-Konfigurationen, Drehsimulation der Lünette und Wischgesten sowie Tests der Interaktion mit einem Telefon-Emulator zur Verfügung. Für Android TV wird eine Oberfläche mit D-Pad-Navigation verwendet. Beide Plattformen unterstützen Hardwarebeschleunigung und Tests mit Google Play Services, was für den Entwicklungszyklus von Smartwatch- und TV-Apps wichtig ist.
Häufig gestellte Fragen
Android Emulator verwendet vollständige ARM-Emulation über QEMU mit Befehlsübersetzung, während iOS Simulator Code für die Host-Architektur kompiliert. Android Emulator unterstützt GPU, Kamera, Sensoren, Bluetooth, NFC — iOS Simulator unterstützt die meisten dieser Funktionen nicht.
In Kotlin prüfen Sie Build.FINGERPRINT auf "generic" oder "emulator" sowie Build.HARDWARE auf "ranchu" oder "goldfish". Verwenden Sie Build.PRODUCT als zusätzlichen Marker — für den Emulator enthält es "sdk_google" oder "google_sdk".
Aktivieren Sie Intel HAxM (Intel VT-x) oder Windows Hyper-V Platform (WHPX) für AMD-Prozessoren. Verwenden Sie x86_64-System-Images mit Hardwarebeschleunigung. Weisen Sie dem Emulator im AVD Manager mindestens 4 GB RAM zu. Aktivieren Sie Quick Boot für Snapshot-Laden.
Ja, Android Emulator unterstützt NFC-Emulation ab Android 10 (API 29). Extended Controls → Phone → NFC ermöglicht das Senden von NDEF-Nachrichten. Lese-/Schreib-Tags, Peer-to-Peer- und HCE-Modi werden unterstützt. Für vollständige Tests verwenden Sie ein echtes Gerät mit NFC-Chip.
Für die tägliche Entwicklung wählen Sie x86_64 mit Google APIs — maximale Leistung und vollständiger Servicesatz. Für Kompatibilitätstests verwenden Sie ARM64-Images. Für CI — Images ohne Google Play Services, sie sind kleiner und starten schneller.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch