AVD Android: bu nima, Android Virtual Device va emulatorni sozlash

Muallif: IT Sectr Nashr etilgan: 2026-02-09 O'qish vaqti: 10 daq

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 — tanlangan System Image bilan QEMU ustida ishlaydigan virtual Android qurilmasi.
  • System Image — ma'lum API Leveldagi Google xizmatlari bilan yoki ularsiz operatsion tizim tasviri.
  • AVD Manager — virtual qurilmalarni yaratish, sozlash va boshqarish uchun Android Studio vositasi.
  • AVD samarali ishlashi uchun apparat virtualizatsiyasi talab qilinadi (HAXM, Hypervisor.Framework yoki WHPX).
  • AVD fizik qurilmasiz ilovalarni turli Android versiyalari, ekran o'lchamlari va konfiguratsiyalarida sinovdan o'tkazish imkonini beradi.

AVD nima

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.

Virtual qurilma turlari

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 turiNamuna profilRezolyutsiyadpi
PhonePixel 81080x2400420
PhonePixel 9 Pro1280x2856490
TabletPixel Tablet2560x1600320
Wear OSPixel Watch384x384320
Android TVAndroid TV 4K1920x1080240

AVD nimadan iborat

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).

System Images turlari

Tasvir turiGoogle xizmatlariGoogle PlayNima uchun
AOSP (default)Yo'qYo'qAsosiy sinov, toza Android
Google APIsHaYo'qGoogle xizmatlari, Maps, FCM sinovi
Google PlayHaHaPlay Store va litsenziyalash bilan to'liq sinov

AVD Manager orqali AVD yaratish

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.

Buyruqlar qatoridan bosqichma-bosqich AVD yaratish

bash
# 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 apparat xususiyatlarini sozlash

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.

config.ini ning asosiy parametrlari

ParametrTavsifTavsiya etilgan qiymat
hw.ramSizeQurilmaning operativ xotirasi2048
vm.heapSizeVirtual mashina yig'imi hajmi256
hw.gpuEnabledGrafikani apparat tezlashtirishyes
hw.gpuModeGPU rejimi (host/mesa)host
disk.dataPartition.sizeMa'lumotlar bo'limi hajmi4096M
hw.cameraKamera emulyatsiyasi turiemulated

Emulator unumdorligini optimallashtirish

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.

Tezlashtirish uchun buyruqlar qatori bayroqlari

bash
# 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

Emulator unumdorligi bo'yicha maslahatlar

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.

Buyruqlar qatoridan AVD boshqaruvi

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.

AVD boshqaruvining asosiy buyruqlari

bash
# 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

ADB va AVD: asosiy buyruqlar

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.

bash
# 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"

Ilova kodida emulatorni tekshirish

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.

Build xususiyati orqali tekshirish usuli

kotlin
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")
}

Tizim xususiyatlari orqali tekshirish

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.

kotlin
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 fizik qurilmadan qanday farq qiladi?

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.

Qancha AVD yaratish 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.

Nega AVD sekin ishlaydi?

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.

AVDni Android Studiosisiz ishga tushirish mumkinmi?

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.

AVDni zavod sozlamalariga qanday qaytarish mumkin?

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

  • AVD — QEMU asosidagi virtual Android qurilmasi, fizik telefonsiz ilovalarni sinash imkonini beradi.
  • System Image — ma'lum API Leveldagi operatsion tizim tasviri, AOSP, Google APIs va Google Play variantlarida mavjud.
  • AVD Manager — Android Studio'da yoki buyruqlar qatoridan virtual qurilmalarni yaratish, sozlash va boshqarish vositasi.
  • AVD unumdorligi uchun apparat virtualizatsiyasi (WHPX, Hypervisor.Framework, KVM) va x86_64 tasvirini tanlash majburiydir.
  • ADB orqali barcha emulyatsiya operatsiyalari mavjud: qo'ng'iroqlar, SMS, GPS, APK o'rnatish, ekran tasvirlari — fizik qurilmadagi kabi.
  • Kodda emulatorni aniqlash uchun Build.FINGERPRINT, Build.HARDWARE va ro.kernel.qemu tekshiruvlaridan foydalaning.
  • AVDni SSDda saqlang va ishga tushirishni tezlashtirish uchun Snapshots-dan foydalaning — bu yuklash vaqtini 60 soniyadan 2–5 soniyagacha qisqartiradi.

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.

Loyihani muhokama qilish

Shuningdek o'qing