Android Emulator — шта је то и како функционише емулација

Аутор: IT Sectr Објављено: 2026-02-09 Време читања: 8 мин

Android Emulator — компонента Android Studio која покреће потпуну виртуелну копију Android уређаја на рачунару програмера. Емулатор користи QEMU за транслацију ARM инструкција на x86_64 архитектуру хоста. Google документација описује пуни циклус подешавања виртуелних уређаја AVD и хардверског убрзања.

Главно

  • Android Emulator — потпуна емулација заснована на QEMU са подршком за ARM транслацију, GPU, сензоре и NFC
  • AVD Manager — алат за креирање и подешавање виртуелних уређаја са избором API нивоа, архитектуре и хардверских карактеристика
  • HAxM и Hyper-V — хардверско убрзање за повећање перформанси емулатора 3-5 пута
  • Провера у коду — Build.FINGERPRINT и Build.PRODUCT омогућавају одређивање покретања у емулатору на Kotlin
  • Емулација сензора — акцелерометар, жироскоп, NFC, GPS и камера су подржани у емулатору

Шта је Android Emulator?

Android Emulator — виртуелни Android уређај који ради на бази QEMU (Quick EMUlator) и емулира хардверску платформу Android. За разлику од iOS Simulator, Android Emulator у потпуности транслира ARM инструкције, што омогућава покретање кода компајлираног за мобилну архитектуру на x86_64 хосту.

Google је објавио Android Emulator 2007. године заједно са првом верзијом Android SDK. Од тада, емулатор је еволуирао од спорог ARM-only решења до високоперформантног система са подршком за GPU, хардверско убрзање и емулацију сензора. Према Google-у (Android Developer Blog, 2025), савремени емулатор са HAxM ради 4-5 пута брже од прве генерације.

Емулатор подржава све компоненте Android уређаја: CPU, GPU, RAM, складиште, екран осетљив на додир, акцелерометар, жироскоп, GPS, камеру, батерију, NFC, Bluetooth и Wi-Fi. Програмер може симулирати долазне позиве, SMS, различите нивое сигнала мреже и геолокацију преко Extended Controls.

Системски имиџи за емулатор

Android Emulator користи системске имиџе (System Images) који се преузимају преко SDK Manager-а. Сваки системски имиџ садржи потпуну копију Android фирмвера за изабрани API ниво и циљану архитектуру процесора. Доступни су имиџи са различитом архитектуром: x86_64 (препоручује се са HAxM), ARM64 (за тестирање ARM компатибилности) и Google APIs (са унапред инсталираним Google Play Services). За Wear OS, Android TV и Automotive такође постоје посебни имиџи.

kotlin
// Провера типа емулатора у коду
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("Апликација је покренута у емулатору")
}

Подешавање AVD у Android Studio

AVD (Android Virtual Device) — конфигурација виртуелног уређаја за емулатор. AVD Manager у Android Studio омогућава креирање уређаја са било којом комбинацијом карактеристика: модел, величина екрана, густина пиксела, количина RAM-а, величина складишта и верзија Android-а.

AVD параметарПрепорука за развојПрепорука за тестирање
Архитектураx86_64 (са HAxM)ARM64 (чиста емулација)
RAM2048-4096 MB1536-2048 MB
Интерна меморија8-16 GB4-8 GB
API нивоПоследњи стабилниМинимални подржани
Google Play ServicesУкљученоПо потреби

Креирање AVD се врши преко Device Manager-а у Android Studio: изаберите хардверски профил (Pixel, Nexus, Galaxy и друге), системски имиџ и подесите параметре. Након креирања, уређај се појављује у листи Run Configurations за директно покретање апликације.

Snapshot режим за брз старт

Емулатор подржава Quick Boot — чува стање AVD-а као snapshot и враћа га при следећем покретању. Време учитавања се смањује са 30-60 секунди на 2-5 секунди. За ресетовање на чисто стање користите Cold Boot Now у AVD Manager-у.

ARM транслација и хардверско убрзање

ARM транслација — кључна технологија Android Emulator-а, која конвертује ARM инструкције у x86_64 у лету. Без транслације, емулатор би могао да покреће само x86_64 имиџе, што ограничава тестирање. Google користи libhoudini за ARM→x86 транслацију и Intel библиотеке за HAXM убрзање.

bash
# Провера статуса HAxM на Windows-у
sc query "IntelHaxm"

# Инсталација HAxM преко SDK Manager-а
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# Покретање емулатора са хардверским убрзањем
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager) — драјвер за виртуелизацију за Intel VT-x процесоре, убрзава емулатор 3-5 пута. На Windows-у са AMD процесором користите Windows Hyper-V Platform и WHPX. Без хардверског убрзања, емулатор ради споро, са кашњењем анимација до 1-2 секунде.

За macOS на Apple Silicon (M серија), хардверско убрзање ради нативно преко Hypervisor.framework-а. Према Google-у (Android Emulator Release Notes 2025), емулатор на M2 Max достиже 95% перформанси правог уређаја при основним операцијама.

Емулатор против правог уређаја

Избор између емулатора и правог уређаја зависи од фазе развоја. На емулатору је згодно развијати и отклањати грешке: брз старт, тренутни деплој, Extended Controls за симулацију сензора. На правом уређају — финално тестирање перформанси, батерије и рада са хардвером.

СценариоЕмулаторПрави уређај
Развој UIДа (брзо)Не (дуг деплој)
Тестирање перформансиНе (преувеличани показатељи)Да (стварна мерења)
Емулација сензора (GPS, NFC)Да (Extended Controls)Ограничено
Потрошња енергијеНије подржаноДа (Battery Historian)
Тестирање мреже (2G/3G/4G/5G)Да (симулација брзине)Да (са SIM картицом)
CI/CD аутоматизацијаДа (без физичких уређаја)Тешко (фарма уређаја)

Перформансе емулатора са хардверским убрзањем су често веће од правог буџетског уређаја. Зато финалне тестове радите на правим уређајима са циљним нивоом перформанси.

Провера емулатора у коду на Kotlin

Одређивање окружења извршавања у Kotlin је корисно за искључивање неисправног кода или додавање информација за отклањање грешака. Android обезбеђује Build.FINGERPRINT, Build.PRODUCT и Build.HARDWARE за ову сврху.

kotlin
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", "Окружење: емулатор")
        }
    }
}

Коришћење детектора емулатора помаже при отклањању грешака: на емулатору можете укључити проширене логове, искључити анимације или заменити стварне API позиве моковима. Избегавајте проверу у продакшн верзијама, осим ако то није потребно за пословну логику апликације.

Тестирање апликација на емулатору

Android Emulator се користи за аутоматизовано тестирање на CI серверима. За покретање тестова потребно је креирати AVD, покренути емулатор и сачекати потпуно учитавање система. Gradle Managed Devices поједностављују овај процес: конфигурација AVD-а се описује у build.gradle.kts.

kotlin
// build.gradle.kts — Gradle Managed Devices
android {
    testOptions {
        managedDevices {
            devices {
                register<ManagedVirtualDevice>("pixel9Api35") {
                    device = "Pixel 9"
                    apiLevel = 35
                    systemImageSource = "google"
                }
            }
        }
    }
}

За ручно покретање емулатора користите командну линију: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Заставица -no-window искључује графички интерфејс за серверско окружење, а -gpu swiftshader_indirect обезбеђује софтверско рендеровање без GPU хоста.

Емулација мреже и сензора

Extended Controls у Android Emulator-у пружа моћне алате за симулацију мрежних услова: кашњење (latency), пропусни опсег (bandwidth) и тип мреже (GPRS, EDGE, 3G, 4G, 5G). Ово омогућава тестирање понашања апликације при спорој вези без физичког путовања у зону са лошом покривеношћу.

Симулација сензора укључује акцелерометар, жироскоп и магнетометар преко виртуелних 3D модела уређаја. За GPS можете учитати GPX датотеке са рутама — емулатор симулира кретање по координатама, што је кључно за тестирање навигационих апликација. Камера се емулира преко веб камере хоста или учитавањем слика.

Multi-display у Android Emulator-у подржава више екрана за таблете и склопиве уређаје. Extended Controls омогућавају промену оријентације, величине екрана и густине пиксела (DPI) без поновног покретања емулатора. За тестирање склопивих уређаја доступни су Foldable режими са пребацивањем између склопљеног и расклопљеног стања.

Android Emulator за Wear OS и Android TV

Емулатор подржава не само паметне телефоне, већ и Wear OS и Android TV. За Wear OS доступне су округле и правоугаоне AVD конфигурације, симулација окретања безела и гестова превлачења, као и тестирање интеракције са емулатором телефона. За Android TV користи се интерфејс са D-pad навигацијом. Обе платформе подржавају хардверско убрзање и тестирање са Google Play Services, што је важно за развојни циклус паметних сатова и телевизијских апликација.

Често постављана питања

По чему се Android Emulator разликује од iOS Simulator-а?

Android Emulator користи потпуну ARM емулацију преко QEMU-а са транслацијом инструкција, док iOS Simator компајлира код за архитектуру хоста. Android Emulator подржава GPU, камеру, сензоре, Bluetooth, NFC — iOS Simulator не подржава већину ових функција.

Како проверити у коду да ли је апликација покренута у емулатору?

У Kotlin-у проверавајте Build.FINGERPRINT за присуство "generic" или "emulator", као и Build.HARDWARE за "ranchu" или "goldfish". Користите Build.PRODUCT као додатни маркер — за емулатор садржи "sdk_google" или "google_sdk".

Како убрзати рад Android Emulator-а?

Укључите Intel HAxM (Intel VT-x) или Windows Hyper-V Platform (WHPX) за AMD процесоре. Користите x86_64 системске имиџе са хардверским убрзањем. Доделите најмање 4 GB RAM емулатору у AVD Manager-у. Укључите Quick Boot за snapshot учитавање.

Може ли се тестирати NFC у Android Emulator-у?

Да, Android Emulator подржава емулацију NFC-а почев од Android 10 (API 29). Extended Controls → Phone → NFC омогућавају слање NDEF порука. Подржани су режими читања/писања тагова, peer-to-peer и HCE. За потпуно тестирање користите прави уређај са NFC чипом.

Које системске имиџе је најбоље изабрати за AVD?

За свакодневни развој бирајте x86_64 са Google APIs — максималне перформансе и пун скуп услуга. За тестирање компатибилности користите ARM64 имиџе. За CI — имиџе без Google Play Services, мањи су и брже се учитавају.

Завршни преглед

  • Android Emulator — потпуна емулација Android уређаја заснована на QEMU-у са подршком за ARM транслацију, GPU, сензоре и NFC
  • AVD Manager — подешавање виртуелних уређаја са избором архитектуре, API нивоа, RAM-а и хардверских карактеристика
  • Хардверско убрзање — HAxM, Hyper-V и WHPX повећавају перформансе емулатора 3-5 пута
  • Провера окружења — Build.FINGERPRINT, Build.PRODUCT и Build.HARDWARE за одређивање покретања у емулатору
  • Extended Controls — симулација GPS, NFC, сензора, долазних позива и SMS-а за тестирање сценарија
  • CI аутоматизација — Gradle Managed Devices и x86_64 имиџи за ефикасно тестирање на CI-ју
  • Quick Boot — snapshot режим смањује време учитавања емулатора на 2-5 секунди

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође