AVD (Android Virtual Device) — je konfigurace emulátoru, která napodobuje skutečné zařízení Android na počítači vývojáře. Každý AVD obsahuje vybranou verzi OS (System Image), typ zařízení (telefon, tablet, Wear OS), velikost obrazovky a množství paměti. Podle Google Android Developers, 2026 se AVD používá k testování aplikací na různých verzích a konfiguracích Androidu bez nutnosti kupovat desítky fyzických zařízení. QEMU — hypervizor, na kterém emulátor běží.
Hlavní body
AVD (Android Virtual Device) — je softwarová konfigurace popisující virtuální zařízení Android. Na rozdíl od fyzického telefonu AVD nevyžaduje hardware — spouští se na počítači přes emulátor Android založený na QEMU. Vývojář vytváří tolik AVD, kolik je potřeba pro testování: pro různé verze Androidu, velikosti obrazovky, množství paměti a hustoty pixelů.
Každý AVD je vázán na konkrétní SDK Platform. To znamená, že pro vytvoření AVD s Androidem 14 (API Level 34) je třeba nejprve nainstalovat System Image této verze přes SDK Manager. System Image je obraz operačního systému, který obsahuje všechny systémové aplikace, služby Google (pokud je vybrán obraz Google APIs) a runtime komponenty. Google doporučuje používat obrazy Google APIs se službami Google Play pro maximální kompatibilitu s reálnými zařízeními.
AVD je při vývoji nepostradatelný z několika důvodů. Za prvé umožňuje testovat aplikaci na různých verzích Androidu bez nákupu desítek zařízení. Za druhé AVD podporuje Snapshots — ukládání stavu systému, což urychluje spouštění. Za třetí je emulátor integrován s Android Studio: instalace APK, ladění a logování fungují stejně jako na fyzickém zařízení.
AVD podporuje různé typy zařízení: telefony (Phone), tablety (Tablet), hodinky (Wear OS), televize (Android TV) a automobilové systémy (Android Automotive). Pro každý typ poskytuje AVD Manager hotové profily od Google: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab a další. Profil zařízení určuje velikost obrazovky, rozlišení, hustotu pixelů (dpi) a navigaci (gesta nebo tlačítka).
| Typ zařízení | Příklad profilu | Rozlišení | dpi |
|---|---|---|---|
| Phone | Pixel 8 | 1080x2400 | 420 |
| Phone | Pixel 9 Pro | 1280x2856 | 490 |
| Tablet | Pixel Tablet | 2560x1600 | 320 |
| Wear OS | Pixel Watch | 384x384 | 320 |
| Android TV | Android TV 4K | 1920x1080 | 240 |
Každý AVD je sada konfiguračních souborů a obrazů. Hlavní konfigurační soubor — config.ini, který ukládá parametry virtuálního zařízení: název, typ, API Level, velikost obrazovky, množství RAM a VM heap. Soubor se nachází v adresáři $HOME/.android/avd/NázevAVD.avd/ a lze jej ručně upravit, i když se obvykle edituje přes AVD Manager.
Kromě config.ini se v adresáři AVD ukládá: userdata.img (obraz uživatelských dat — aplikace, nastavení, soubory), system.img (odkaz na System Image nainstalované SDK Platform), cache.img (mezipaměť) a sdcard.img (obraz SD karty). Při provedení Wipe Data je userdata.img smazán a je vytvořen nový prázdný obraz. Snapshots se ukládají do samostatné složky snapshots/ v adresáři AVD.
System Image se stahuje odděleně od AVD — jeden obraz může používat několik virtuálních zařízení. Systémové obrazy jsou uloženy v adresáři Android SDK: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Typy obrazů: google_apis (se službami Google), google_apis_playstore (s Google Play Store) a default (čistý AOSP bez služeb Google).
| Typ obrazu | Služby Google | Google Play | K čemu |
|---|---|---|---|
| AOSP (default) | Ne | Ne | Základní testování, čistý Android |
| Google APIs | Ano | Ne | Testování služeb Google, Maps, FCM |
| Google Play | Ano | Ano | Plné testování s Play Store a licencováním |
AVD Manager — je grafický nástroj v Android Studio pro vytváření a správu virtuálních zařízení. Lze jej otevřít přes menu Tools → Device Manager nebo přes ikonu na panelu nástrojů. AVD Manager zobrazuje seznam vytvořených zařízení, jejich stav (spuštěno/zastaveno), verzi Androidu a dostupné akce (spuštění, zastavení, wipe data, úprava).
Pro vytvoření nového AVD klikněte na tlačítko Create device. Vyberte profil zařízení ze seznamu hotových profilů — Google poskytuje profily pro všechna populární zařízení. Po výběru profilu uveďte System Image: verzi Androidu a typ obrazu. Pro nové projekty vyberte nejnovější stabilní verzi s obrazem Google APIs. Poté nakonfigurujte název AVD, orientaci obrazovky, množství RAM a VM heap. Po vytvoření je AVD připraven ke spuštění.
# Seznam dostupných System Images
sdkmanager --list | grep system-images
# Instalace System Image pro API 35 s Google APIs
sdkmanager "system-images;android-35;google_apis;x86_64"
# Vytvoření AVD s názvem pixel8_api35
avdmanager create avd -n pixel8_api35 \
-k "system-images;android-35;google_apis;x86_64" \
-d pixel_8
# Spuštění vytvořeného AVD
emulator -avd pixel8_api35 -gpu host -memory 2048
# Seznam všech AVD
avdmanager list avd
AVD Manager umožňuje detailně nakonfigurovat hardwarové charakteristiky virtuálního zařízení. Hlavní parametry: RAM (operační paměť, doporučená hodnota 2048–4096 MB), VM heap (velikost haldy virtuálního stroje, 256–512 MB), Internal Storage (interní úložiště, 2–8 GB) a SD Card (virtuální SD karta). Tyto parametry ovlivňují výkon aplikace a její chování při nedostatku paměti.
Další nastavení zahrnuje: kameru (emulovanou nebo připojení webkamery hostitele), senzory (akcelerometr, gyroskop), NFC, Bluetooth a baterii. Například pro testování aplikací s určováním polohy lze emulovat otáčení zařízení pomocí ovládacích tlačítek emulátoru nebo přes ADB. Emulace senzorů umožňuje testovat scénáře, které je obtížné reprodukovat na fyzickém zařízení.
| Parametr | Popis | Doporučená hodnota |
|---|---|---|
| hw.ramSize | Operační paměť zařízení | 2048 |
| vm.heapSize | Velikost haldy virtuálního stroje | 256 |
| hw.gpuEnabled | Hardwarová akcelerace grafiky | yes |
| hw.gpuMode | Režim GPU (host/mesa) | host |
| disk.dataPartition.size | Velikost datového oddílu | 4096M |
| hw.camera | Typ emulace kamery | emulated |
Rychlost provozu AVD přímo závisí na hardwarové virtualizaci. Na Windows se používá Windows Hypervisor Platform (WHPX), na macOS — Hypervisor.Framework, na Linuxu — KVM. Pokud je virtualizace vypnutá, AVD pracuje v režimu čistě softwarové emulace, což je 10–20krát pomalejší. Pro kontrolu, zda je virtualizace zapnutá, spusťte emulátor s příznakem -accel-check.
Druhým klíčovým faktorem je volba architektury System Image. Obrazy x86_64 pracují výrazně rychleji než arm64-v8a na počítačích s procesory Intel a AMD, protože nevyžadují dynamický překlad instrukcí ARM. Vždy používejte x86_64 obrazy pro vývoj na Windows a macOS s procesory Intel. Na procesorech ARM Mac (Apple Silicon) používejte nativní arm64-v8a obrazy.
# Spuštění s hardwarovou virtualizací a akcelerací GPU
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4
# Kontrola podpory virtualizace
emulator -accel-check
# Spuštění bez grafického rozhraní (pro CI)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off
# Použití snapshotů pro rychlé spouštění
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save
Pro maximální výkon AVD: přidělte emulátoru alespoň 2–4 GB RAM, zapněte GPU Host (používá grafickou kartu počítače pro vykreslování), vypněte zvuk (příznak -no-audio), pokud není potřeba, a používejte Snapshots pro rychlý návrat do čistého stavu. Snapshots ukládají úplný stav systému — spuštění ze snímku trvá 2–5 sekund místo 30–60 sekund úplného načítání.
Doporučuje se také ukládat AVD na SSD disk — I/O operace při načítání systému a instalaci APK se výrazně urychlí. Pro práci s několika AVD současně zvyšte celkové množství RAM v počítači a používejte příznak -read-only pro neměnné emulátory.
Plná kontrola nad AVD je možná z příkazového řádku bez Android Studio. Nástroje avdmanager a emulator jsou součástí Android SDK a provádějí všechny operace: vytváření, mazání, spouštění a konfiguraci AVD. Příkazový řádek je užitečný zejména v CI/CD pipeline, kde není grafické rozhraní, a pro automatizaci testování.
# Vytvořit AVD s vlastními parametry
avdmanager create avd -n test_device \
-k "system-images;android-34;google_apis;x86_64" \
--device "pixel_8" \
--force
# Smazat AVD
avdmanager delete avd -n test_device
# Klonovat AVD (kopírováním souborů)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd
# Resetovat data AVD
emulator -avd test_device -wipe-data
# Nainstalovat APK na běžící AVD
adb -s emulator-5554 install app-release.apk
Po spuštění AVD s ním lze pracovat přes ADB (Android Debug Bridge) jako s fyzickým zařízením. ADB umožňuje instalovat aplikace, spouštět intenty, emulovat události (hovory, SMS, GPS), pořizovat snímky obrazovky a nahrávat video obrazovky. To dělá z AVD plnohodnotné prostředí pro automatizované testování.
# Seznam připojených zařízení (včetně AVD)
adb devices
# Emulace příchozího hovoru
adb emu gsm call +15551234567
# Emulace GPS souřadnic
adb emu geo fix -122.084 37.422
# Pořídit snímek obrazovky
adb exec-out screencap -p > screenshot.png
# Odeslat SMS
adb emu sms send +15551234567 "Hello from AVD"
Někdy musí vývojář v kódu určit, zda aplikace běží na emulátoru nebo na fyzickém zařízení. To může být potřeba pro vypnutí analytiky (aby se nezanášela produkční data), zapnutí rozšířeného logování nebo vypnutí hardwarově závislých funkcí, které na emulátoru nefungují. Google poskytuje standardní metody kontroly přes třídu Build a systémové vlastnosti.
object EmulatorDetector {
fun isEmulator(): Boolean {
return (Build.BRAND.startsWith("generic") &&
Build.DEVICE.startsWith("generic")) ||
Build.FINGERPRINT.startsWith("generic") ||
Build.FINGERPRINT.startsWith("unknown") ||
Build.HARDWARE.contains("goldfish") ||
Build.HARDWARE.contains("ranchu") ||
Build.MODEL.contains("google_sdk") ||
Build.MODEL.contains("Emulator") ||
Build.MODEL.contains("Android SDK")
}
}
// Použití
if (EmulatorDetector.isEmulator()) {
Log.d("App", "Running on emulator — enable debug mode")
}
Doplňková metoda — čtení systémových vlastností přes Build.getRadioVersion() a kontrola ro.kernel.qemu. Na emulátoru vrací radio version null a vlastnost qemu je nastavena na 1. Tato metoda je spolehlivější na starších verzích Androidu, kde může být Build.FINGERPRINT změněn výrobcem zařízení.
fun isRunningOnEmulator(): Boolean {
// Kontrola přes radio version — na emulátoru vždy null
val radioVersion = try {
Build.getRadioVersion()
} catch (e: Exception) {
null
}
if (radioVersion.isNullOrBlank()) return true
// Kontrola přes systémové vlastnosti
return try {
val props = ProcessBuilder()
.command("getprop", "ro.kernel.qemu")
.start()
.inputStream.bufferedReader().readText().trim()
props == "1"
} catch (e: Exception) {
false
}
}
Často kladené otázky
AVD běží na QEMU a nemůže plně napodobit hardwarové vlastnosti: skutečnou kameru, NFC, Bluetooth. AVD je ideální pro testování UI, kontrolu životního cyklu a kompatibility s verzemi OS. Pro přesné testování kamery a senzorů je potřeba fyzické zařízení.
Minimálně 2–3 AVD: nejnovější API Level pro kontrolu nových funkcí, minimální podporovaný (minSdk) pro kompatibilitu a populární model zařízení (Pixel 8 nebo Samsung Galaxy) pro testování UI pro konkrétní obrazovku.
Hlavní příčiny: vypnutá hardwarová virtualizace (WHPX, Hypervisor.Framework, KVM), málo RAM (méně než 2 GB), vypnutý GPU Host. Zapněte -gpu host a zvýšte paměť na 2–4 GB — to zrychlí emulátor 3–5krát.
Ano. Emulátor se spouští přes emulator -avd Název_AVD z příkazového řádku. K tomu jsou potřeba Android SDK, Platform-Tools a nainstalovaná System Image. AVD Manager je také k dispozici jako konzolový nástroj avdmanager.
V AVD Manager vyberte Wipe Data — tím se smaže userdata.img a emulátor se vrátí do původního stavu. Z příkazového řádku: emulator -avd Název -wipe-data. Snapshots přitom zůstanou zachovány, pokud nejsou smazány samostatně.
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é