AVD (Android Virtual Device) — bu dasturchining kompyuterida haqiqiy Android qurilmasini taqlid qiluvchi emulator konfiguratsiyasi. Har bir AVD tanlangan OT versiyasini (System Image), qurilma turini (telefon, planshet, Wear OS), ekran o'lchami va xotira hajmini o'z ichiga oladi. Google Android Developers, 2026 ma'lumotlariga ko'ra, AVD o'nlab fizik qurilmalarni sotib olmasdan turli Android versiyalari va konfiguratsiyalarida ilovalarni sinovdan o'tkazish uchun ishlatiladi. QEMU — emulator ishlaydigan gipervizor.
Asosiy ma'lumotlar
AVD (Android Virtual Device) — bu virtual Android qurilmasini tavsiflovchi dasturiy konfiguratsiya. Fizik telefondan farqli o'laroq, AVD apparat talab qilmaydi — u QEMU asosidagi Android emulatori orqali kompyuterda ishga tushiriladi. Dasturchi sinov uchun kerakli miqdorda AVD yaratadi: turli Android versiyalari, ekran o'lchamlari, xotira hajmlari va piksel zichliklari uchun.
Har bir AVD ma'lum bir SDK Platform bilan bog'langan. Bu shuni anglatadiki, Android 14 (API Level 34) bilan AVD yaratish uchun avval SDK Manager orqali ushbu versiyaning System Image-ni o'rnatish kerak. System Image — barcha tizim ilovalari, Google xizmatlari (agar Google APIs tasviri tanlangan bo'lsa) va runtime komponentlarini o'z ichiga olgan operatsion tizim tasviridir. Google tavsiya qiladi maksimal moslik uchun Google Play xizmatlari bilan Google APIs tasvirlaridan foydalanishni.
AVD dasturiy ta'minotda bir necha sabablarga ko'ra ajralmas hisoblanadi. Birinchidan, o'nlab qurilmalar sotib olmasdan ilovani turli Android versiyalarida sinash imkonini beradi. Ikkinchidan, AVD Snapshots — tizim holatini saqlashni qo'llab-quvvatlaydi, bu ishga tushirishni tezlashtiradi. Uchinchidan, emulator Android Studio bilan integratsiyalangan: APK o'rnatish, nosozliklarni tuzatish va jurnallash fizik qurilmadagi kabi ishlaydi.
AVD turli xil qurilma turlarini qo'llab-quvvatlaydi: telefonlar (Phone), planshetlar (Tablet), soatlar (Wear OS), televizorlar (Android TV) va avtomobil tizimlari (Android Automotive). Har bir tur uchun AVD Manager Google tomonidan tayyor profillarni taqdim etadi: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab va boshqalar. Qurilma profili ekran o'lchami, rezolyutsiya, piksel zichligi (dpi) va navigatsiyani (imo-ishoralar yoki tugmalar) belgilaydi.
| Qurilma turi | Namuna profil | Rezolyutsiya | 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 |
Har bir AVD konfiguratsiya fayllari va tasvirlar to'plamidir. Asosiy konfiguratsiya fayli — config.ini, virtual qurilma parametrlarini saqlaydi: nom, tur, API Level, ekran o'lchami, RAM va VM heap hajmi. Fayl $HOME/.android/avd/AVDNomi.avd/ katalogida joylashgan va qo'lda o'zgartirilishi mumkin, garchi odatda AVD Manager orqali tahrirlanadi.
config.ini dan tashqari, AVD katalogida saqlanadi: userdata.img (foydalanuvchi ma'lumotlari tasviri — ilovalar, sozlamalar, fayllar), system.img (o'rnatilgan SDK Platform System Image-ga havola), cache.img (kesh) va sdcard.img (SD karta tasviri). Wipe Data bajarilganda, userdata.img o'chiriladi va yangi bo'sh tasvir yaratiladi. Snapshots AVD katalogi ichidagi alohida snapshots/ papkasida saqlanadi.
System Image AVDdan alohida yuklanadi — bitta tasvir bir nechta virtual qurilmalar tomonidan ishlatilishi mumkin. Tizim tasvirlari Android SDK katalogida saqlanadi: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Tasvir turlari: google_apis (Google xizmatlari bilan), google_apis_playstore (Google Play Store bilan) va default (Google xizmatlarisiz toza AOSP).
| Tasvir turi | Google xizmatlari | Google Play | Nima uchun |
|---|---|---|---|
| AOSP (default) | Yo'q | Yo'q | Asosiy sinov, toza Android |
| Google APIs | Ha | Yo'q | Google xizmatlari, Maps, FCM sinovi |
| Google Play | Ha | Ha | Play Store va litsenziyalash bilan to'liq sinov |
AVD Manager — Android Studio'da virtual qurilmalarni yaratish va boshqarish uchun grafik vositadir. Uni Tools → Device Manager menyusi yoki asboblar panelidagi belgisi orqali ochish mumkin. AVD Manager yaratilgan qurilmalar ro'yxatini, ularning holatini (ishlayapti/to'xtatilgan), Android versiyasini va mavjud amallarni (ishga tushirish, to'xtatish, wipe data, tahrirlash) ko'rsatadi.
Yangi AVD yaratish uchun Create device tugmasini bosing. Tayyor profillar ro'yxatidan qurilma profilini tanlang — Google barcha mashhur qurilmalar uchun profillarni taqdim etadi. Profilni tanlagandan so'ng, System Image-ni ko'rsating: Android versiyasi va tasvir turi. Yangi loyihalar uchun Google APIs tasviri bilan eng so'nggi barqaror versiyani tanlang. Keyin AVD nomini, ekran orientatsiyasini, RAM va VM heap hajmini sozlang. Yaratilgandan so'ng, AVD ishga tushirishga tayyor.
# Mavjud System Images ro'yxati
sdkmanager --list | grep system-images
# Google APIs bilan API 35 uchun System Image o'rnatish
sdkmanager "system-images;android-35;google_apis;x86_64"
# pixel8_api35 nomi bilan AVD yaratish
avdmanager create avd -n pixel8_api35 \
-k "system-images;android-35;google_apis;x86_64" \
-d pixel_8
# Yaratilgan AVDni ishga tushirish
emulator -avd pixel8_api35 -gpu host -memory 2048
# Barcha AVDlar ro'yxati
avdmanager list avd
AVD Manager virtual qurilmaning apparat xususiyatlarini batafsil sozlash imkonini beradi. Asosiy parametrlar: RAM (operativ xotira, tavsiya etilgan qiymat 2048–4096 MB), VM heap (virtual mashina yig'imi hajmi, 256–512 MB), Internal Storage (ichki xotira, 2–8 GB) va SD Card (virtual SD karta). Ushbu parametrlar ilovaning unumdorligiga va xotira yetishmasligidagi xatti-harakatiga ta'sir qiladi.
Qo'shimcha sozlamalarga kiradi: kamera (emulyatsiya qilingan yoki host veb-kamerasini ulash), sensorlar (akselerometr, giroskop), NFC, Bluetooth va batareya. Masalan, joylashuvni aniqlash ilovalarini sinash uchun emulator boshqaruv tugmalari yoki ADB orqali qurilmaning aylanishini emulyatsiya qilish mumkin. Sensorlarni emulyatsiya qilish fizik qurilmada takrorlash qiyin bo'lgan stsenariylarni sinash imkonini beradi.
| Parametr | Tavsif | Tavsiya etilgan qiymat |
|---|---|---|
| hw.ramSize | Qurilmaning operativ xotirasi | 2048 |
| vm.heapSize | Virtual mashina yig'imi hajmi | 256 |
| hw.gpuEnabled | Grafikani apparat tezlashtirish | yes |
| hw.gpuMode | GPU rejimi (host/mesa) | host |
| disk.dataPartition.size | Ma'lumotlar bo'limi hajmi | 4096M |
| hw.camera | Kamera emulyatsiyasi turi | emulated |
AVD ish tezligi bevosita apparat virtualizatsiyasiga bog'liq. Windowsda Windows Hypervisor Platform (WHPX), macOSda Hypervisor.Framework, Linuxda KVM ishlatiladi. Virtualizatsiya o'chirilgan bo'lsa, AVD sof dasturiy emulyatsiya rejimida ishlaydi, bu 10–20 marta sekinroq. Virtualizatsiya yoqilganligini tekshirish uchun emulatorni -accel-check bayrog'i bilan ishga tushiring.
Ikkinchi asosiy omil — System Image arxitekturasini tanlash. x86_64 tasvirlari Intel va AMD protsessorli kompyuterlarda arm64-v8a dan sezilarli darajada tez ishlaydi, chunki ARM ko'rsatmalarining dinamik tarjimasini talab qilmaydi. Intel protsessorli Windows va macOSda ishlab chiqish uchun doimo x86_64 tasvirlaridan foydalaning. Mac (Apple Silicon) ARM protsessorlarida mahalliy arm64-v8a tasvirlaridan foydalaning.
# Apparat virtualizatsiyasi va GPU tezlashtirish bilan ishga tushirish
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4
# Virtualizatsiya qo'llab-quvvatlashini tekshirish
emulator -accel-check
# Grafik interfeysiz ishga tushirish (CI uchun)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off
# Tez ishga tushirish uchun snapshotlardan foydalanish
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save
Maksimal AVD unumdorligi uchun: emulatorga kamida 2–4 GB RAM ajrating, GPU Host-ni yoqing (renderlash uchun kompyuterning video kartasidan foydalanadi), tovushni o'chiring (-no-audio bayrog'i), agar kerak bo'lmasa, va toza holatga tez qaytish uchun Snapshots-dan foydalaning. Snapshots tizimning to'liq holatini saqlaydi — suratdan ishga tushirish 30–60 soniya to'liq yuklash o'rniga 2–5 soniya davom etadi.
Shuningdek, AVDni SSD diskda saqlash tavsiya etiladi — tizimni yuklash va APK o'rnatishdagi kiritish-chiqarish operatsiyalari sezilarli darajada tezlashadi. Bir vaqtning o'zida bir nechta AVD bilan ishlash uchun kompyuterdagi umumiy RAM miqdorini oshiring va o'zgarmas emulatorlar uchun -read-only bayrog'idan foydalaning.
AVD ustidan to'liq nazorat Android Studio'siz buyruqlar qatoridan mumkin. avdmanager va emulator vositalari Android SDK tarkibiga kiradi va barcha operatsiyalarni bajaradi: AVD yaratish, o'chirish, ishga tushirish va sozlash. Buyruqlar qatori ayniqsa grafik interfeysi bo'lmagan CI/CD quvurlarida va test avtomatlashtirish uchun foydalidir.
# Maxsus parametrlar bilan AVD yaratish
avdmanager create avd -n test_device \
-k "system-images;android-34;google_apis;x86_64" \
--device "pixel_8" \
--force
# AVDni o'chirish
avdmanager delete avd -n test_device
# AVDni klonlash (fayllarni nusxalash orqali)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd
# AVD ma'lumotlarini tiklash
emulator -avd test_device -wipe-data
# Ishlayotgan AVDga APK o'rnatish
adb -s emulator-5554 install app-release.apk
AVD ishga tushirilgandan so'ng, u bilan ADB (Android Debug Bridge) orqali fizik qurilmadagi kabi ishlash mumkin. ADB ilovalarni o'rnatish, intentlarni ishga tushirish, hodisalarni (qo'ng'iroqlar, SMS, GPS) emulyatsiya qilish, ekran tasvirlarini olish va ekran videosini yozish imkonini beradi. Bu AVDni avtomatlashtirilgan test uchun to'liq muhitga aylantiradi.
# Ulangan qurilmalar ro'yxati (AVD bilan birga)
adb devices
# Kiruvchi qo'ng'iroqni emulyatsiya qilish
adb emu gsm call +15551234567
# GPS koordinatalarini emulyatsiya qilish
adb emu geo fix -122.084 37.422
# Ekran tasvirini olish
adb exec-out screencap -p > screenshot.png
# SMS jo'natish
adb emu sms send +15551234567 "Hello from AVD"
Ba'zan dasturchi kodda ilova emulator yoki fizik qurilmada ishga tushirilganligini aniqlashi kerak. Bu analitikani o'chirish (ishlab chiqarish ma'lumotlarini ifloslantirmaslik uchun), kengaytirilgan jurnallashni yoqish yoki emulatorda ishlamaydigan apparatga bog'liq funksiyalarni o'chirish uchun kerak bo'lishi mumkin. Google Build klassi va tizim xususiyatlari orqali tekshirish uchun standart usullarni taqdim etadi.
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")
}
}
// Foydalanish
if (EmulatorDetector.isEmulator()) {
Log.d("App", "Running on emulator — enable debug mode")
}
Qo'shimcha usul — Build.getRadioVersion() orqali tizim xususiyatlarini o'qish va ro.kernel.qemu ni tekshirish. Emulatorda radio version null qaytaradi, qemu xususiyati esa 1 ga o'rnatiladi. Bu usul Build.FINGERPRINT qurilma ishlab chiqaruvchisi tomonidan o'zgartirilishi mumkin bo'lgan eski Android versiyalarida ishonchliroqdir.
fun isRunningOnEmulator(): Boolean {
// Radio version orqali tekshirish — emulatorda doim null
val radioVersion = try {
Build.getRadioVersion()
} catch (e: Exception) {
null
}
if (radioVersion.isNullOrBlank()) return true
// Tizim xususiyatlari orqali tekshirish
return try {
val props = ProcessBuilder()
.command("getprop", "ro.kernel.qemu")
.start()
.inputStream.bufferedReader().readText().trim()
props == "1"
} catch (e: Exception) {
false
}
}
Tez-tez beriladigan savollar
AVD QEMU ustida ishlaydi va apparat xususiyatlarini to'liq taqlid qila olmaydi: haqiqiy kamera, NFC, Bluetooth. AVD UI sinovi, lifecycle tekshiruvi va OT versiyalari bilan moslik uchun idealdir. Kamera va sensorlarni aniq sinash uchun fizik qurilma kerak.
Kamida 2–3 AVD: eng yangi API Level yangi funksiyalarni tekshirish uchun, minimal qo'llab-quvvatlanadigan (minSdk) moslik uchun va mashhur qurilma modeli (Pixel 8 yoki Samsung Galaxy) ma'lum ekran uchun UI sinovi uchun.
Asosiy sabablar: apparat virtualizatsiyasi o'chirilgan (WHPX, Hypervisor.Framework, KVM), kam RAM (2 GB dan kam), GPU Host o'chirilgan. -gpu host-ni yoqing va xotirani 2–4 GB gacha oshiring — bu emulatorni 3–5 marta tezlashtiradi.
Ha. Emulator emulator -avd AVD_Nomi orqali buyruqlar qatoridan ishga tushiriladi. Buning uchun Android SDK, Platform-Tools va o'rnatilgan System Image kerak. AVD Manager shuningdek avdmanager konsol yordamchi dasturi sifatida mavjud.
AVD Managerda Wipe Data ni tanlang — bu userdata.img ni o'chiradi va emulatorni boshlang'ich holatiga qaytaradi. Buyruqlar qatoridan: emulator -avd Nom -wipe-data. Snapshots alohida o'chirilmasa, saqlanadi.
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.