Android Emulator — Android Studio komponenti bo'lib, dasturchi kompyuterida Android qurilmasining to'liq virtual nusxasini ishga tushiradi. Emulator ARM ko'rsatmalarini x86_64 host arxitekturasiga tarjima qilish uchun QEMU-dan foydalanadi. Google hujjatlari AVD virtual qurilmalari va apparat tezlashtirishni sozlashning to'liq siklini tavsiflaydi.
Asosiy ma'lumotlar
Android Emulator — QEMU (Quick EMUlator) asosida ishlaydigan va Android apparat platformasini emulyatsiya qiluvchi virtual Android qurilmasi. iOS Simulator-dan farqli o'laroq, Android Emulator ARM ko'rsatmalarini to'liq tarjima qiladi, bu mobil arxitektura uchun kompilyatsiya qilingan kodni x86_64 hostida ishga tushirish imkonini beradi.
Google Android Emulator-ni 2007 yilda Android SDK-ning birinchi versiyasi bilan birga chiqardi. O'shandan beri emulator sekin ARM-only yechimidan GPU, apparat tezlashtirish va sensor emulyatsiyasini qo'llab-quvvatlaydigan yuqori unumli tizimga aylandi. Google ma'lumotlariga ko'ra (Android Developer Blog, 2025), HAxM bilan zamonaviy emulator birinchi avlodga qaraganda 4-5 marta tezroq ishlaydi.
Emulator Android qurilmasining barcha komponentlarini qo'llab-quvvatlaydi: CPU, GPU, RAM, xotira, sensorli ekran, akselerometr, giroskop, GPS, kamera, batareya, NFC, Bluetooth va Wi-Fi. Dasturchi Extended Controls orqali kiruvchi qo'ng'iroqlarni, SMS-larni, turli tarmoq signal darajalarini va geolokatsiyani simulyatsiya qilishi mumkin.
Android Emulator SDK Manager orqali yuklanadigan tizim obrazlaridan (System Images) foydalanadi. Har bir tizim obrazida tanlangan API darajasi va maqsadli protsessor arxitektura uchun Android proshivkasining to'liq nusxasi mavjud. Turli arxitekturaga ega obrazlar mavjud: x86_64 (HAxM bilan tavsiya etiladi), ARM64 (ARM mosligini sinash uchun) va Google APIs (oldindan o'rnatilgan Google Play Services bilan). Wear OS, Android TV va Automotive uchun ham alohida obrazlar mavjud.
// Emulator turini kodda tekshirish
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("Ilova emulatorda ishga tushirildi")
}AVD (Android Virtual Device) — emulator uchun virtual qurilma konfiguratsiyasi. Android Studio-dagi AVD Manager model, ekran o'lchami, piksel zichligi, RAM miqdori, xotira hajmi va Android versiyasi kabi xususiyatlarning istalgan kombinatsiyasi bilan qurilmalar yaratish imkonini beradi.
| AVD Parametri | Ishlab chiqish uchun tavsiya | Sinov uchun tavsiya |
|---|---|---|
| Arxitektura | x86_64 (HAxM bilan) | ARM64 (sof emulyatsiya) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Ichki xotira | 8-16 GB | 4-8 GB |
| API Darajasi | Oxirgi barqaror | Minimal qo'llab-quvvatlanadigan |
| Google Play Services | Yoqilgan | Kerak bo'lganda |
AVD yaratish Android Studio-dagi Device Manager orqali amalga oshiriladi: apparat profilini (Pixel, Nexus, Galaxy va boshqalar), tizim obrazini tanlang va parametrlarni sozlang. Yaratilgandan so'ng, qurilma ilovani to'g'ridan-to'g'ri ishga tushirish uchun Run Configurations ro'yxatida paydo bo'ladi.
Emulator Quick Boot qo'llab-quvvatlaydi — AVD holatini snapshot sifatida saqlaydi va keyingi ishga tushirishda uni tiklaydi. Yuklash vaqti 30-60 soniyadan 2-5 soniyagacha kamayadi. Toza holatga qaytarish uchun AVD Manager-da Cold Boot Now dan foydalaning.
ARM tarjimasi — Android Emulator-ning ARM ko'rsatmalarini joyida x86_64 ga aylantiruvchi asosiy texnologiyasi. Tarjimasiz emulator faqat x86_64 obrazlarini ishga tushirishi mumkin edi, bu sinovni cheklaydi. Google ARM→x86 tarjimasi uchun libhoudini va HAXM tezlashtirish uchun Intel kutubxonalaridan foydalanadi.
# Windows-da HAxM holatini tekshirish
sc query "IntelHaxm"
# HAxM ni SDK Manager orqali o'rnatish
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Emulatorni apparat tezlashtirish bilan ishga tushirish
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) — Intel VT-x protsessorlari uchun virtualizatsiya drayveri, emulatorni 3-5 marta tezlashtiradi. AMD protsessorli Windows-da Windows Hyper-V Platform va WHPX dan foydalaning. Apparat tezlashtirishsiz emulator sekin ishlaydi, animatsiyalar kechikishi 1-2 soniyagacha bo'ladi.
Apple Silicon (M seriyasi) dagi macOS uchun apparat tezlashtirish Hypervisor.framework orqali nativ ishlaydi. Google ma'lumotlariga ko'ra (Android Emulator Release Notes 2025), M2 Max dagi emulator asosiy operatsiyalarda haqiqiy qurilma unumdorligining 95% ga etadi.
Emulator va haqiqiy qurilma o'rtasidagi tanlov ishlab chiqish bosqichiga bog'liq. Emulatorda ishlab chiqish va tuzatish qulay: tez ishga tushirish, darhol deploy, sensorlarni simulyatsiya qilish uchun Extended Controls. Haqiqiy qurilmada — unumdorlik, batareya va apparat bilan ishlashning yakuniy sinovi.
| Ssenariy | Emulator | Haqiqiy qurilma |
|---|---|---|
| UI ishlab chiqish | Ha (tez) | Yo'q (uzoq deploy) |
| Unumdorlikni sinash | Yo'q (yuqori ko'rsatkichlar) | Ha (haqiqiy o'lchovlar) |
| Sensor emulyatsiyasi (GPS, NFC) | Ha (Extended Controls) | Cheklangan |
| Energiya iste'moli | Qo'llab-quvvatlanmaydi | Ha (Battery Historian) |
| Tarmoq sinovi (2G/3G/4G/5G) | Ha (tezlik simulyatsiyasi) | Ha (SIM karta bilan) |
| CI/CD avtomatlashtirish | Ha (fizik qurilmalarsiz) | Qiyin (qurilmalar fermasi) |
Apparat tezlashtirish bilan emulatorning unumdorligi ko'pincha haqiqiy byudjet qurilmasidan yuqori. Shuning uchun yakuniy sinovlarni maqsadli unumdorlik darajasidagi haqiqiy qurilmalarda o'tkazing.
Kotlin da bajarish muhitini aniqlash noto'g'ri kodni o'chirish yoki tuzatish ma'lumotlarini qo'shish uchun foydalidir. Android bu maqsad uchun Build.FINGERPRINT, Build.PRODUCT va Build.HARDWARE ni taqdim etadi.
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", "Muhit: emulator")
}
}
}Emulator detektoridan foydalanish tuzatishda yordam beradi: emulatorda kengaytirilgan loglarni yoqish, animatsiyalarni o'chirish yoki haqiqiy API chaqiruvlarini mock-lar bilan almashtirish mumkin. Agar ilovaning biznes mantiqi talab qilmasa, ishlab chiqarish yig'ilishlarida tekshirishdan saqlaning.
Android Emulator CI serverlarida avtomatlashtirilgan sinov uchun ishlatiladi. Testlarni ishga tushirish uchun AVD yaratish, emulatorni ishga tushirish va tizimning to'liq yuklanishini kutish talab qilinadi. Gradle Managed Devices bu jarayonni soddalashtiradi: AVD konfiguratsiyasi build.gradle.kts da tavsiflanadi.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Emulatorni qo'lda ishga tushirish uchun buyruq satridan foydalaning: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. -no-window bayrog'i server muhiti uchun grafik interfeysni o'chiradi, -gpu swiftshader_indirect esa host GPU-siz dasturiy renderlashni ta'minlaydi.
Android Emulator-dagi Extended Controls tarmoq shartlarini simulyatsiya qilish uchun kuchli vositalarni taqdim etadi: kechikish (latency), o'tkazish qobiliyati (bandwidth) va tarmoq turi (GPRS, EDGE, 3G, 4G, 5G). Bu yomon qamrovli hududga jismoniy sayohat qilmasdan ilovaning sekin ulanishdagi xatti-harakatini sinash imkonini beradi.
Sensorlarni simulyatsiya qilish virtual 3D qurilma modellari orqali akselerometr, giroskop va magnitometrni o'z ichiga oladi. GPS uchun marshrutli GPX fayllarni yuklash mumkin — emulator koordinatalar bo'yicha harakatni simulyatsiya qiladi, bu navigatsiya ilovalarini sinash uchun muhimdir. Kamera hostning veb-kamerasi yoki tasvirlarni yuklash orqali emulyatsiya qilinadi.
Multi-display Android Emulator-da planshetlar va buklanadigan qurilmalar uchun bir nechta ekranlarni qo'llab-quvvatlaydi. Extended Controls emulatorni qayta ishga tushirmasdan orientatsiya, ekran o'lchami va piksel zichligini (DPI) o'zgartirish imkonini beradi. Buklanadigan qurilmalarni sinash uchun buklangan va ochilgan holat o'rtasida almashinadigan Foldable rejimlari mavjud.
Emulator nafaqat smartfonlarni, balki Wear OS va Android TV ni ham qo'llab-quvvatlaydi. Wear OS uchun dumaloq va to'rtburchak AVD konfiguratsiyalari, bezel aylanishi va surish imo-ishoralarini simulyatsiya qilish, shuningdek telefon emulatori bilan o'zaro aloqani sinash mavjud. Android TV uchun D-pad navigatsiyasiga ega interfeys ishlatiladi. Ikkala platforma apparat tezlashtirish va Google Play Services bilan sinovni qo'llab-quvvatlaydi, bu aqlli soatlar va televizor ilovalarining ishlab chiqish davri uchun muhimdir.
Tez-tez so'raladigan savollar
Android Emulator ko'rsatmalar tarjimasi bilan QEMU orqali to'liq ARM emulyatsiyasidan foydalanadi, iOS Simulator esa kodni host arxitekturasi uchun kompilyatsiya qiladi. Android Emulator GPU, kamera, sensorlar, Bluetooth, NFC qo'llab-quvvatlaydi — iOS Simulator bu funksiyalarning aksariyatini qo'llab-quvvatlamaydi.
Kotlin da Build.FINGERPRINT ni "generic" yoki "emulator" uchun, shuningdek Build.HARDWARE ni "ranchu" yoki "goldfish" uchun tekshiring. Build.PRODUCT ni qo'shimcha marker sifatida ishlating — emulator uchun "sdk_google" yoki "google_sdk" ni o'z ichiga oladi.
Intel HAxM (Intel VT-x) yoki AMD protsessorlari uchun Windows Hyper-V Platform (WHPX) ni yoqing. Apparat tezlashtirish bilan x86_64 tizim obrazlaridan foydalaning. AVD Manager-da emulatorga kamida 4 GB RAM ajrating. Snapshot yuklash uchun Quick Boot ni yoqing.
Ha, Android Emulator Android 10 (API 29) dan boshlab NFC emulyatsiyasini qo'llab-quvvatlaydi. Extended Controls → Phone → NFC NDEF xabarlarini yuborish imkonini beradi. Teglarni o'qish/yozish, peer-to-peer va HCE rejimlari qo'llab-quvvatlanadi. To'liq sinov uchun NFC chipiga ega haqiqiy qurilmadan foydalaning.
Kundalik ishlab chiqish uchun Google APIs bilan x86_64 ni tanlang — maksimal unumdorlik va to'liq xizmatlar to'plami. Moslikni sinash uchun ARM64 obrazlaridan foydalaning. CI uchun — Google Play Services bo'lmagan obrazlar, ular kichikroq va tezroq yuklanadi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.