Android Emulator — komponenta Android Studio, která spouští plnohodnotnou virtuální kopii zařízení Android na počítači vývojáře. Emulátor používá QEMU k translaci instrukcí ARM na architekturu x86_64 hostitele. Dokumentace Google popisuje celý cyklus nastavení virtuálních zařízení AVD a hardwarové akcelerace.
Hlavní body
Android Emulator — virtuální zařízení Android pracující na bázi QEMU (Quick EMUlator) a emulující hardwarovou platformu Android. Na rozdíl od iOS Simulator, Android Emulator plně transluje instrukce ARM, což umožňuje spouštět kód zkompilovaný pro mobilní architekturu na hostiteli x86_64.
Google vydal Android Emulator v roce 2007 spolu s první verzí Android SDK. Od té doby se emulátor vyvinul z pomalého řešení pouze pro ARM na vysoce výkonný systém s podporou GPU, hardwarové akcelerace a emulace senzorů. Podle Google (Android Developer Blog, 2025) moderní emulátor s HAxM pracuje 4-5krát rychleji než první generace.
Emulátor podporuje všechny komponenty zařízení Android: CPU, GPU, RAM, úložiště, dotykovou obrazovku, akcelerometr, gyroskop, GPS, kameru, baterii, NFC, Bluetooth a Wi-Fi. Vývojář může simulovat příchozí hovory, SMS, různé úrovně síťového signálu a geolokaci prostřednictvím Extended Controls.
Android Emulator používá systémové obrazy (System Images), které se stahují přes SDK Manager. Každý systémový obraz obsahuje úplnou kopii firmwaru Android pro vybranou úroveň API a cílovou architekturu procesoru. K dispozici jsou obrazy s různou architekturou: x86_64 (doporučeno s HAxM), ARM64 (pro testování kompatibility ARM) a Google APIs (s předinstalovanými Google Play Services). Pro Wear OS, Android TV a Automotive jsou také k dispozici samostatné obrazy.
// Kontrola typu emulátoru v kódu
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("Aplikace běží v emulátoru")
}AVD (Android Virtual Device) — konfigurace virtuálního zařízení pro emulátor. AVD Manager v Android Studio umožňuje vytvářet zařízení s libovolnou kombinací charakteristik: model, velikost obrazovky, hustota pixelů, množství RAM, velikost úložiště a verze Android.
| Parametr AVD | Doporučení pro vývoj | Doporučení pro testování |
|---|---|---|
| Architektura | x86_64 (s HAxM) | ARM64 (čistá emulace) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Interní úložiště | 8-16 GB | 4-8 GB |
| Úroveň API | Poslední stabilní | Minimální podporovaná |
| Google Play Services | Zapnuto | Podle potřeby |
Vytvoření AVD se provádí přes Device Manager v Android Studio: vyberte hardwarový profil (Pixel, Nexus, Galaxy a další), systémový obraz a nakonfigurujte parametry. Po vytvoření se zařízení objeví v seznamu Run Configurations pro přímé spuštění aplikace.
Emulátor podporuje Quick Boot — ukládá stav AVD jako snapshot a obnovuje jej při příštím spuštění. Doba načítání se snižuje z 30-60 sekund na 2-5 sekund. Pro reset do čistého stavu použijte Cold Boot Now v AVD Manager.
ARM translace — klíčová technologie Android Emulator, která převádí instrukce ARM na x86_64 za běhu. Bez translace by emulátor mohl spouštět pouze obrazy x86_64, což omezuje testování. Google používá libhoudini pro translaci ARM→x86 a knihovny Intel pro akceleraci HAXM.
# Kontrola stavu HAxM na Windows
sc query "IntelHaxm"
# Instalace HAxM přes SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Spuštění emulátoru s hardwarovou akcelerací
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) — virtualizační ovladač pro procesory Intel VT-x, urychluje emulátor 3-5krát. Na Windows s procesorem AMD použijte Windows Hyper-V Platform a WHPX. Bez hardwarové akcelerace emulátor pracuje pomalu, se zpožděním animací až 1-2 sekundy.
Pro macOS na Apple Silicon (řada M) funguje hardwarová akcelerace nativně přes Hypervisor.framework. Podle Google (Android Emulator Release Notes 2025) dosahuje emulátor na M2 Max 95 % výkonu skutečného zařízení při základních operacích.
Volba mezi emulátorem a skutečným zařízením závisí na fázi vývoje. Na emulátoru je pohodlné vyvíjet a ladit: rychlý start, okamžité nasazení, Extended Controls pro simulaci senzorů. Na skutečném zařízení — konečné testování výkonu, baterie a práce s hardwarem.
| Scénář | Emulátor | Skutečné zařízení |
|---|---|---|
| Vývoj UI | Ano (rychle) | Ne (pomalé nasazení) |
| Testování výkonu | Ne (nadhodnocené hodnoty) | Ano (skutečná měření) |
| Emulace senzorů (GPS, NFC) | Ano (Extended Controls) | Omezeně |
| Spotřeba energie | Nepodporováno | Ano (Battery Historian) |
| Testování sítě (2G/3G/4G/5G) | Ano (simulace rychlosti) | Ano (s SIM kartou) |
| Automatizace CI/CD | Ano (bez fyzických zařízení) | Obtížné (farma zařízení) |
Výkon emulátoru s hardwarovou akcelerací je často vyšší než skutečného levného zařízení. Proto provádějte konečné testy na skutečných zařízeních s cílovou úrovní výkonu.
Určení prostředí běhu v Kotlin je užitečné pro vypnutí nesprávného kódu nebo přidání ladicích informací. Android poskytuje Build.FINGERPRINT, Build.PRODUCT a Build.HARDWARE pro tento účel.
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", "Prostředí: emulátor")
}
}
}Použití detektoru emulátoru pomáhá při ladění: na emulátoru můžete zapnout rozšířené logy, vypnout animace nebo nahradit skutečná API volání mocky. Vyhněte se kontrole v produkčních sestaveních, pokud to není vyžadováno obchodní logikou aplikace.
Android Emulator se používá pro automatizované testování na CI serverech. Pro spuštění testů je třeba vytvořit AVD, spustit emulátor a počkat na úplné načtení systému. Gradle Managed Devices tento proces zjednodušují: konfigurace AVD je popsána v build.gradle.kts.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Pro ruční spuštění emulátoru použijte příkazový řádek: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Přepínač -no-window vypíná grafické rozhraní pro serverové prostředí a -gpu swiftshader_indirect zajišťuje softwarové vykreslování bez GPU hostitele.
Extended Controls v Android Emulator poskytuje výkonné nástroje pro simulaci síťových podmínek: zpoždění (latency), šířku pásma (bandwidth) a typ sítě (GPRS, EDGE, 3G, 4G, 5G). To umožňuje testovat chování aplikace při pomalém připojení bez fyzické cesty do oblasti se špatným pokrytím.
Simulace senzorů zahrnuje akcelerometr, gyroskop a magnetometr prostřednictvím virtuálních 3D modelů zařízení. Pro GPS lze načíst soubory GPX s trasami — emulátor simuluje pohyb po souřadnicích, což je kritické pro testování navigačních aplikací. Kamera je emulována prostřednictvím webkamery hostitele nebo načítáním obrázků.
Multi-display v Android Emulator podporuje více obrazovek pro tablety a skládací zařízení. Extended Controls umožňují změnit orientaci, velikost obrazovky a hustotu pixelů (DPI) bez restartu emulátoru. Pro testování skládacích zařízení jsou k dispozici režimy Foldable s přepínáním mezi složeným a rozloženým stavem.
Emulátor podporuje nejen chytré telefony, ale také Wear OS a Android TV. Pro Wear OS jsou k dispozici kulaté a obdélníkové konfigurace AVD, simulace otáčení rámečku a gest přejetí, stejně jako testování interakce s telefonním emulátorem. Pro Android TV se používá rozhraní s navigací D-pad. Obě platformy podporují hardwarovou akceleraci a testování s Google Play Services, což je důležité pro vývojový cyklus chytrých hodinek a televizních aplikací.
Často kladené dotazy
Android Emulator používá plnohodnotnou emulaci ARM přes QEMU s translací instrukcí, zatímco iOS Simulator kompiluje kód pro architekturu hostitele. Android Emulator podporuje GPU, kameru, senzory, Bluetooth, NFC — iOS Simulator většinu těchto funkcí nepodporuje.
V Kotlin zkontrolujte Build.FINGERPRINT na přítomnost "generic" nebo "emulator", a také Build.HARDWARE na "ranchu" nebo "goldfish". Použijte Build.PRODUCT jako doplňkový marker — pro emulátor obsahuje "sdk_google" nebo "google_sdk".
Zapněte Intel HAxM (Intel VT-x) nebo Windows Hyper-V Platform (WHPX) pro procesory AMD. Používejte systémové obrazy x86_64 s hardwarovou akcelerací. Přidělte emulátoru alespoň 4 GB RAM v AVD Manager. Zapněte Quick Boot pro načítání ze snapshotu.
Ano, Android Emulator podporuje emulaci NFC od Android 10 (API 29). Extended Controls → Phone → NFC umožňují odesílání NDEF zpráv. Režimy čtení/zápisu tagů, peer-to-peer a HCE jsou podporovány. Pro úplné testování použijte skutečné zařízení s NFC čipem.
Pro každodenní vývoj zvolte x86_64 s Google APIs — maximální výkon a plná sada služeb. Pro testování kompatibility použijte obrazy ARM64. Pro CI — obrazy bez Google Play Services, jsou menší a rychleji se načítají.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také