Android Emulator — componenta Android Studio care rulează o copie virtuală completă a unui dispozitiv Android pe computerul dezvoltatorului. Emulatorul folosește QEMU pentru translatarea instrucțiunilor ARM pe arhitectura x86_64 a gazdei. Documentația Google descrie ciclul complet de configurare a dispozitivelor virtuale AVD și a accelerării hardware.
Principalele puncte
Android Emulator — un dispozitiv virtual Android care rulează pe baza QEMU (Quick EMUlator) și emulează platforma hardware Android. Spre deosebire de iOS Simulator, Android Emulator translatează complet instrucțiunile ARM, permițând rularea codului compilat pentru arhitectura mobilă pe un gazdă x86_64.
Google a lansat Android Emulator în 2007 împreună cu prima versiune a Android SDK. De atunci, emulatorul a evoluat de la o soluție lentă doar pentru ARM la un sistem de înaltă performanță cu suport pentru GPU, accelerare hardware și emulare a senzorilor. Potrivit Google (Android Developer Blog, 2025), emulatorul modern cu HAxM funcționează de 4-5 ori mai rapid decât prima generație.
Emulatorul suportă toate componentele unui dispozitiv Android: CPU, GPU, RAM, stocare, ecran tactil, accelerometru, giroscop, GPS, cameră, baterie, NFC, Bluetooth și Wi-Fi. Dezvoltatorul poate simula apeluri primite, SMS-uri, diferite niveluri ale semnalului de rețea și geolocație prin Extended Controls.
Android Emulator utilizează imagini de sistem (System Images) care se descarcă prin SDK Manager. Fiecare imagine de sistem conține o copie completă a firmware-ului Android pentru nivelul API selectat și arhitectura procesorului țintă. Sunt disponibile imagini cu arhitecturi diferite: x86_64 (recomandat cu HAxM), ARM64 (pentru testarea compatibilității ARM) și Google APIs (cu Google Play Services preinstalate). Pentru Wear OS, Android TV și Automotive există, de asemenea, imagini separate.
// Verificarea tipului de emulator în cod
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("Aplicația rulează în emulator")
}AVD (Android Virtual Device) — configurația dispozitivului virtual pentru emulator. AVD Manager din Android Studio permite crearea de dispozitive cu orice combinație de caracteristici: model, dimensiunea ecranului, densitatea pixelilor, cantitatea de RAM, dimensiunea stocării și versiunea Android.
| Parametru AVD | Recomandare pentru dezvoltare | Recomandare pentru testare |
|---|---|---|
| Arhitectură | x86_64 (cu HAxM) | ARM64 (emulare pură) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Stocare internă | 8-16 GB | 4-8 GB |
| Nivel API | Ultimul stabil | Minim suportat |
| Google Play Services | Activat | La nevoie |
Crearea AVD se realizează prin Device Manager în Android Studio: selectați profilul hardware (Pixel, Nexus, Galaxy și altele), imaginea de sistem și configurați parametrii. După creare, dispozitivul apare în lista Run Configurations pentru rularea directă a aplicației.
Emulatorul suportă Quick Boot — salvează starea AVD ca snapshot și o restabilește la următoarea pornire. Timpul de încărcare se reduce de la 30-60 de secunde la 2-5 secunde. Pentru resetarea la starea curată, utilizați Cold Boot Now în AVD Manager.
Translația ARM — tehnologia cheie a Android Emulator, care convertește instrucțiunile ARM în x86_64 din mers. Fără translare, emulatorul ar putea rula doar imagini x86_64, ceea ce limitează testarea. Google folosește libhoudini pentru translarea ARM→x86 și bibliotecile Intel pentru accelerarea HAXM.
# Verificarea stării HAxM pe Windows
sc query "IntelHaxm"
# Instalarea HAxM prin SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Pornirea emulatorului cu accelerare hardware
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) — driver de virtualizare pentru procesoarele Intel VT-x, care accelerează emulatorul de 3-5 ori. Pe Windows cu procesor AMD, utilizați Windows Hyper-V Platform și WHPX. Fără accelerare hardware, emulatorul funcționează lent, cu întârzieri ale animațiilor de până la 1-2 secunde.
Pentru macOS pe Apple Silicon (seria M), accelerarea hardware funcționează nativ prin Hypervisor.framework. Potrivit Google (Android Emulator Release Notes 2025), emulatorul pe M2 Max atinge 95% din performanța unui dispozitiv real pentru operațiile de bază.
Alegerea între emulator și dispozitiv real depinde de etapa de dezvoltare. Pe emulator este convenabil să dezvoltați și să depanați: pornire rapidă, deploy instantaneu, Extended Controls pentru simularea senzorilor. Pe dispozitivul real — testarea finală a performanței, bateriei și a funcționării cu hardware-ul.
| Scenariu | Emulator | Dispozitiv real |
|---|---|---|
| Dezvoltare UI | Da (rapid) | Nu (deploy lung) |
| Testare performanță | Nu (valori supraevaluate) | Da (măsurători reale) |
| Emulare senzori (GPS, NFC) | Da (Extended Controls) | Limitat |
| Consum energie | Nu este suportat | Da (Battery Historian) |
| Testare rețea (2G/3G/4G/5G) | Da (simulare viteză) | Da (cu cartelă SIM) |
| Automatizare CI/CD | Da (fără dispozitive fizice) | Dificil (fermă de dispozitive) |
Performanța emulatorului cu accelerare hardware este adesea mai mare decât cea a unui dispozitiv real bugetar. De aceea, testele finale se efectuează pe dispozitive reale cu nivelul de performanță țintă.
Determinarea mediului de execuție în Kotlin este utilă pentru dezactivarea codului incorect sau adăugarea de informații de depanare. Android oferă Build.FINGERPRINT, Build.PRODUCT și Build.HARDWARE în acest scop.
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", "Mediu: emulator")
}
}
}Utilizarea detectorului de emulator ajută la depanare: pe emulator puteți activa loguri extinse, dezactiva animațiile sau înlocui apelurile API reale cu mock-uri. Evitați verificarea în versiunile de producție, dacă aceasta nu este necesară pentru logica de business a aplicației.
Android Emulator este utilizat pentru testarea automatizată pe servere CI. Pentru a rula testele, este necesar să creați un AVD, să porniți emulatorul și să așteptați încărcarea completă a sistemului. Gradle Managed Devices simplifică acest proces: configurația AVD este descrisă în build.gradle.kts.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Pentru pornirea manuală a emulatorului, utilizați linia de comandă: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Flag-ul -no-window dezactivează interfața grafică pentru mediul server, iar -gpu swiftshader_indirect asigură randarea software fără GPU-ul gazdei.
Extended Controls în Android Emulator oferă instrumente puternice pentru simularea condițiilor de rețea: întârziere (latency), lățime de bandă (bandwidth) și tip de rețea (GPRS, EDGE, 3G, 4G, 5G). Acest lucru permite testarea comportamentului aplicației la conexiune lentă fără a călători fizic într-o zonă cu acoperire slabă.
Simularea senzorilor include accelerometru, giroscop și magnetometru prin modele 3D virtuale ale dispozitivelor. Pentru GPS, puteți încărca fișiere GPX cu rute — emulatorul simulează mișcarea pe coordonate, ceea ce este esențial pentru testarea aplicațiilor de navigație. Camera este emulată prin webcam-ul gazdei sau încărcarea de imagini.
Multi-display în Android Emulator suportă mai multe ecrane pentru tablete și dispozitive pliabile. Extended Controls permit schimbarea orientării, dimensiunii ecranului și densității pixelilor (DPI) fără repornirea emulatorului. Pentru testarea dispozitivelor pliabile, sunt disponibile moduri Foldable cu comutare între starea pliată și desfășurată.
Emulatorul suportă nu numai smartphone-uri, ci și Wear OS și Android TV. Pentru Wear OS sunt disponibile configurații AVD rotunde și dreptunghiulare, simularea rotirii bezel-ului și gesturilor de swipe, precum și testarea interacțiunii cu emulatorul de telefon. Pentru Android TV se utilizează o interfață cu navigare D-pad. Ambele platforme suportă accelerarea hardware și testarea cu Google Play Services, ceea ce este important pentru ciclul de dezvoltare al ceasurilor inteligente și aplicațiilor TV.
Întrebări frecvente
Android Emulator utilizează emulare ARM completă prin QEMU cu translare de instrucțiuni, în timp ce iOS Simulator compilează codul pentru arhitectura gazdei. Android Emulator suportă GPU, cameră, senzori, Bluetooth, NFC — iOS Simulator nu suportă majoritatea acestor funcții.
În Kotlin verificați Build.FINGERPRINT pentru prezența "generic" sau "emulator", precum și Build.HARDWARE pentru "ranchu" sau "goldfish". Utilizați Build.PRODUCT ca marker suplimentar — pentru emulator conține "sdk_google" sau "google_sdk".
Activați Intel HAxM (Intel VT-x) sau Windows Hyper-V Platform (WHPX) pentru procesoare AMD. Utilizați imagini de sistem x86_64 cu accelerare hardware. Alocați cel puțin 4 GB RAM emulatorului în AVD Manager. Activați Quick Boot pentru încărcare din snapshot.
Da, Android Emulator suportă emularea NFC începând cu Android 10 (API 29). Extended Controls → Phone → NFC permit trimiterea de mesaje NDEF. Sunt suportate modurile citire/scriere tag-uri, peer-to-peer și HCE. Pentru testare completă, utilizați un dispozitiv real cu cip NFC.
Pentru dezvoltarea zilnică alegeți x86_64 cu Google APIs — performanță maximă și set complet de servicii. Pentru testarea compatibilității utilizați imagini ARM64. Pentru CI — imagini fără Google Play Services, sunt mai mici și se încarcă mai repede.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și