Android Emulator — ano ito at paano gumagana ang emulation

May-akda: IT Sectr Nai-publish: 2026-02-09 Oras ng pagbabasa: 8 min

Android Emulator — isang component ng Android Studio na nagpapatakbo ng kumpletong virtual na kopya ng Android device sa computer ng developer. Gumagamit ang emulator ng QEMU para i-translate ang ARM instructions sa x86_64 architecture ng host. Dokumentasyon ng Google ay naglalarawan ng buong cycle ng pag-setup ng AVD virtual device at hardware acceleration.

Mga pangunahing punto

  • Android Emulator — kumpletong emulation batay sa QEMU na may suporta para sa ARM translation, GPU, sensors at NFC
  • AVD Manager — tool para sa paggawa at pag-configure ng mga virtual device na may pagpili ng API level, architecture at hardware characteristics
  • HAxM at Hyper-V — hardware acceleration para sa 3-5 beses na pagtaas ng performance ng emulator
  • Pag-check sa code — Build.FINGERPRINT at Build.PRODUCT ay nagbibigay-daan sa pag-detect ng pagtakbo sa emulator sa Kotlin
  • Emulation ng sensors — accelerometer, gyroscope, NFC, GPS at camera ay suportado sa emulator

Ano ang Android Emulator?

Android Emulator — isang virtual na Android device na tumatakbo batay sa QEMU (Quick EMUlator) at ginagaya ang hardware platform ng Android. Hindi tulad ng iOS Simulator, ang Android Emulator ay ganap na nagta-translate ng ARM instructions, na nagbibigay-daan sa pagpapatakbo ng code na na-compile para sa mobile architecture sa isang x86_64 host.

Inilabas ng Google ang Android Emulator noong 2007 kasama ang unang bersyon ng Android SDK. Mula noon, ang emulator ay umunlad mula sa isang mabagal na ARM-only na solusyon patungo sa isang high-performance system na may suporta para sa GPU, hardware acceleration at sensor emulation. Ayon sa Google (Android Developer Blog, 2025), ang modernong emulator na may HAxM ay 4-5 beses na mas mabilis kaysa sa unang henerasyon.

Sinusuportahan ng emulator ang lahat ng component ng isang Android device: CPU, GPU, RAM, storage, touchscreen, accelerometer, gyroscope, GPS, camera, baterya, NFC, Bluetooth at Wi-Fi. Maaaring i-simulate ng developer ang mga incoming call, SMS, iba't ibang antas ng network signal at geolocation sa pamamagitan ng Extended Controls.

System images para sa emulator

Android Emulator ay gumagamit ng system images (System Images) na dina-download sa pamamagitan ng SDK Manager. Bawat system image ay naglalaman ng kumpletong kopya ng Android firmware para sa napiling API level at target na processor architecture. Available ang mga image na may iba't ibang architecture: x86_64 (inirerekomenda na may HAxM), ARM64 (para sa pag-test ng ARM compatibility) at Google APIs (may pre-installed na Google Play Services). Para sa Wear OS, Android TV at Automotive, mayroon ding mga hiwalay na image.

kotlin
// Pag-check ng uri ng emulator sa code
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("App ay tumatakbo sa emulator")
}

Pag-setup ng AVD sa Android Studio

AVD (Android Virtual Device) — configuration ng virtual device para sa emulator. Ang AVD Manager sa Android Studio ay nagbibigay-daan sa paggawa ng mga device na may anumang kumbinasyon ng mga katangian: modelo, laki ng screen, pixel density, dami ng RAM, laki ng storage at bersyon ng Android.

AVD ParameterRekomendasyon para sa developmentRekomendasyon para sa pag-test
Architecturex86_64 (may HAxM)ARM64 (purong emulation)
RAM2048-4096 MB1536-2048 MB
Internal storage8-16 GB4-8 GB
API LevelPinakabagong stableMinimum na suportado
Google Play ServicesNaka-onKung kinakailangan

Paglikha ng AVD ay ginagawa sa pamamagitan ng Device Manager sa Android Studio: pumili ng hardware profile (Pixel, Nexus, Galaxy at iba pa), system image at i-configure ang mga parameter. Pagkatapos gawin, lalabas ang device sa listahan ng Run Configurations para sa direktang pagpapatakbo ng app.

Snapshot mode para sa mabilis na pagsisimula

Sinusuportahan ng emulator ang Quick Boot — sine-save ang estado ng AVD bilang snapshot at ibinabalik ito sa susunod na pagsisimula. Ang oras ng pag-load ay nababawasan mula 30-60 segundo hanggang 2-5 segundo. Para i-reset sa malinis na estado, gamitin ang Cold Boot Now sa AVD Manager.

ARM translation at hardware acceleration

ARM translation — ang pangunahing teknolohiya ng Android Emulator, na nagko-convert ng ARM instructions sa x86_64 sa real-time. Kung walang translation, ang emulator ay makakatakbo lamang ng x86_64 images, na naglilimita sa pag-test. Gumagamit ang Google ng libhoudini para sa ARM→x86 translation at Intel libraries para sa HAXM acceleration.

bash
# Pag-check ng status ng HAxM sa Windows
sc query "IntelHaxm"

# Pag-install ng HAxM sa pamamagitan ng SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# Pagsisimula ng emulator na may hardware acceleration
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager) — virtualization driver para sa Intel VT-x processors, nagpapabilis ng emulator ng 3-5 beses. Sa Windows na may AMD processor, gamitin ang Windows Hyper-V Platform at WHPX. Kung walang hardware acceleration, mabagal ang emulator, na may mga pagkaantala ng animation hanggang 1-2 segundo.

Para sa macOS sa Apple Silicon (M series), ang hardware acceleration ay gumagana nang native sa pamamagitan ng Hypervisor.framework. Ayon sa Google (Android Emulator Release Notes 2025), ang emulator sa M2 Max ay umaabot sa 95% ng performance ng totoong device para sa mga pangunahing operasyon.

Emulator kumpara sa totoong device

Ang pagpili sa pagitan ng emulator at totoong device ay depende sa yugto ng development. Sa emulator ay maginhawang mag-develop at mag-debug: mabilis na pagsisimula, agarang deployment, Extended Controls para sa simulation ng sensor. Sa totoong device — huling pag-test ng performance, baterya at paggana sa hardware.

ScenarioEmulatorTotoong device
UI developmentOo (mabilis)Hindi (mabagal na deployment)
Performance testingHindi (mataas na numero)Oo (totoong sukat)
Sensor emulation (GPS, NFC)Oo (Extended Controls)Limitado
Pagkonsumo ng kuryenteHindi suportadoOo (Battery Historian)
Network testing (2G/3G/4G/5G)Oo (simulation ng bilis)Oo (may SIM card)
CI/CD automationOo (walang pisikal na device)Mahirap (device farm)

Ang performance ng emulator na may hardware acceleration ay madalas na mas mataas kaysa sa totoong budget device. Kaya't gawin ang huling pag-test sa mga totoong device na may target na antas ng performance.

Pag-check ng emulator sa Kotlin code

Ang pagtukoy ng execution environment sa Kotlin ay kapaki-pakinabang para sa pag-disable ng maling code o pagdagdag ng debug information. Ang Android ay nagbibigay ng Build.FINGERPRINT, Build.PRODUCT at Build.HARDWARE para sa layuning ito.

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", "Environment: emulator")
        }
    }
}

Paggamit ng emulator detector ay nakakatulong sa pag-debug: sa emulator maaari mong i-on ang extended logs, i-disable ang animations o palitan ang totoong API calls ng mga mock. Iwasan ang pag-check sa production builds kung hindi ito kinakailangan ng business logic ng app.

Pag-test ng mga app sa emulator

Android Emulator ay ginagamit para sa automated testing sa CI servers. Para magpatakbo ng tests, kailangan gumawa ng AVD, simulan ang emulator at maghintay ng ganap na pag-load ng system. Pinasimple ng Gradle Managed Devices ang prosesong ito: ang AVD configuration ay inilalarawan sa build.gradle.kts.

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

Para sa manual na pagsisimula ng emulator, gamitin ang command line: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Ang flag na -no-window ay nagdi-disable ng graphical interface para sa server environment, at -gpu swiftshader_indirect ay nagbibigay ng software rendering nang walang host GPU.

Emulation ng network at sensors

Ang Extended Controls sa Android Emulator ay nagbibigay ng makapangyarihang tool para sa simulation ng network conditions: latency, bandwidth at uri ng network (GPRS, EDGE, 3G, 4G, 5G). Ito ay nagbibigay-daan sa pag-test ng behavior ng app sa mabagal na koneksyon nang hindi pumupunta sa lugar na may mahinang signal.

Simulation ng sensors ay kinabibilangan ng accelerometer, gyroscope at magnetometer sa pamamagitan ng virtual 3D models ng mga device. Para sa GPS, maaari kang mag-load ng GPX files na may mga ruta — ginagaya ng emulator ang paggalaw sa mga coordinate, na mahalaga para sa pag-test ng navigation apps. Ang camera ay na-emulate sa pamamagitan ng webcam ng host o pag-load ng mga imahe.

Multi-display sa Android Emulator ay sumusuporta ng maraming screen para sa mga tablet at foldable device. Pinapayagan ng Extended Controls ang pagbabago ng orientation, laki ng screen at pixel density (DPI) nang hindi nire-restart ang emulator. Para sa pag-test ng foldable device, available ang Foldable mode na may paglipat sa pagitan ng nakatiklop at nakabukas na estado.

Android Emulator para sa Wear OS at Android TV

Sinusuportahan ng emulator hindi lamang ang mga smartphone, kundi pati na rin ang Wear OS at Android TV. Para sa Wear OS, available ang bilog at parihabang AVD configurations, simulation ng pag-ikot ng bezel at swipe gestures, pati na rin ang pag-test ng interaksyon sa phone emulator. Para sa Android TV, ginagamit ang interface na may D-pad navigation. Parehong platform ay sumusuporta sa hardware acceleration at pag-test na may Google Play Services, na mahalaga para sa development cycle ng smartwatches at TV applications.

Mga madalas itanong

Paano naiiba ang Android Emulator sa iOS Simulator?

Ang Android Emulator ay gumagamit ng buong ARM emulation sa pamamagitan ng QEMU na may instruction translation, samantalang ang iOS Simulator ay nagco-compile ng code para sa host architecture. Sinusuportahan ng Android Emulator ang GPU, camera, sensors, Bluetooth, NFC — ang iOS Simulator ay hindi sumusuporta sa karamihan ng mga function na ito.

Paano i-check sa code kung ang app ay tumatakbo sa emulator?

Sa Kotlin, suriin ang Build.FINGERPRINT para sa pagkakaroon ng "generic" o "emulator", pati na rin ang Build.HARDWARE para sa "ranchu" o "goldfish". Gamitin ang Build.PRODUCT bilang karagdagang marker — para sa emulator naglalaman ito ng "sdk_google" o "google_sdk".

Paano pabilisin ang Android Emulator?

I-on ang Intel HAxM (Intel VT-x) o Windows Hyper-V Platform (WHPX) para sa AMD processors. Gumamit ng x86_64 system images na may hardware acceleration. Maglaan ng hindi bababa sa 4 GB RAM sa emulator sa AVD Manager. I-on ang Quick Boot para sa snapshot loading.

Maaari bang i-test ang NFC sa Android Emulator?

Oo, Android Emulator ay sumusuporta sa NFC emulation mula sa Android 10 (API 29). Extended Controls → Phone → NFC ay nagbibigay-daan sa pagpapadala ng NDEF messages. Ang read/write tag, peer-to-peer at HCE mode ay suportado. Para sa kumpletong pag-test, gumamit ng totoong device na may NFC chip.

Aling system images ang pinakamahusay para sa AVD?

Para sa araw-araw na development, piliin ang x86_64 na may Google APIs — maximum performance at kumpletong set ng serbisyo. Para sa compatibility testing, gamitin ang ARM64 images. Para sa CI — images na walang Google Play Services, mas maliit at mas mabilis mag-load.

Buod

  • Android Emulator — kumpletong emulation ng Android device batay sa QEMU na may suporta para sa ARM translation, GPU, sensors at NFC
  • AVD Manager — configuration ng virtual device na may pagpili ng architecture, API level, RAM at hardware characteristics
  • Hardware acceleration — HAxM, Hyper-V at WHPX ay nagpapataas ng performance ng emulator ng 3-5 beses
  • Environment check — Build.FINGERPRINT, Build.PRODUCT at Build.HARDWARE para sa pag-detect ng pagtakbo sa emulator
  • Extended Controls — simulation ng GPS, NFC, sensors, incoming calls at SMS para sa pag-test ng mga scenario
  • CI automation — Gradle Managed Devices at x86_64 images para sa efficient na pag-test sa CI
  • Quick Boot — snapshot mode na nagbabawas ng load time ng emulator hanggang 2-5 segundo

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din