AVD Android: nedir, Android Virtual Device ve emülatör nasıl yapılandırılır

Yazar: IT Sectr Yayınlanma: 2026-02-09 Okuma süresi: 10 dk

AVD (Android Virtual Device), geliştiricinin bilgisayarında gerçek bir Android cihazını simüle eden bir emülatör yapılandırmasıdır. Her AVD, seçilen bir işletim sistemi sürümünü (System Image), cihaz türünü (telefon, tablet, Wear OS), ekran boyutunu ve bellek kapasitesini içerir. Google Android Developers, 2026'ya göre, AVD'ler düzinelerce fiziksel cihaz satın almadan farklı Android sürümleri ve yapılandırmalarında uygulamaları test etmek için kullanılır. QEMU, emülatörün üzerinde çalıştığı hipervizördür.

Önemli Noktalar

  • AVD — seçilen bir System Image ile QEMU üzerinde çalışan sanal bir Android cihazıdır.
  • System Image — Google hizmetleri olsun veya olmasın belirli bir API Level'deki işletim sistemi görüntüsüdür.
  • AVD Manager — sanal cihazlar oluşturmak, yapılandırmak ve yönetmek için bir Android Studio aracıdır.
  • Üretken AVD çalışması için donanım sanallaştırması gereklidir (HAXM, Hypervisor.Framework veya WHPX).
  • AVD, fiziksel cihaz olmadan farklı Android sürümlerinde, ekran boyutlarında ve yapılandırmalarda uygulamaları test etmeye olanak tanır.

AVD nedir

AVD (Android Virtual Device), sanal bir Android cihazını tanımlayan bir yazılım yapılandırmasıdır. Fiziksel bir telefondan farklı olarak, AVD donanım gerektirmez — QEMU tabanlı Android emülatörü aracılığıyla bir bilgisayarda çalışır. Bir geliştirici, test için ihtiyaç duyduğu kadar AVD oluşturur: farklı Android sürümleri, ekran boyutları, bellek kapasiteleri ve piksel yoğunlukları için.

Her AVD belirli bir SDK Platform'a bağlıdır. Bu, Android 14 (API Level 34) ile bir AVD oluşturmak için önce SDK Manager aracılığıyla bu sürümün System Image'ini yüklemeniz gerektiği anlamına gelir. System Image, tüm sistem uygulamalarını, Google hizmetlerini (Google APIs görüntüsü seçilmişse) ve çalışma zamanı bileşenlerini içeren bir işletim sistemi görüntüsüdür. Google, gerçek cihazlarla maksimum uyumluluk için Google Play hizmetlerini içeren Google APIs görüntülerinin kullanılmasını önerir.

AVD, geliştirmede çeşitli nedenlerle vazgeçilmezdir. Birincisi, düzinelerce cihaz satın almadan farklı Android sürümlerinde uygulamayı test etmeye olanak tanır. İkincisi, AVD, sistem durumunu kaydederek başlatmayı hızlandıran Anlık Görüntüleri (Snapshot) destekler. Üçüncüsü, emülatör Android Studio ile entegredir: APK yükleme, hata ayıklama ve günlük kaydı, fiziksel bir cihazdaki gibi çalışır.

Sanal cihaz türleri

AVD çeşitli cihaz türlerini destekler: telefonlar, tabletler, Wear OS saatler, Android TV ve Android Automotive. Her tür için AVD Manager, Google'dan hazır profiller sağlar: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab ve diğerleri. Cihaz profili, ekran boyutunu, çözünürlüğü, piksel yoğunluğunu (dpi) ve gezinmeyi (jestler veya düğmeler) tanımlar.

Cihaz türüÖrnek profilÇözünürlükdpi
PhonePixel 81080x2400420
PhonePixel 9 Pro1280x2856490
TabletPixel Tablet2560x1600320
Wear OSPixel Watch384x384320
Android TVAndroid TV 4K1920x1080240

AVD nelerden oluşur

Her AVD, bir dizi yapılandırma dosyası ve görüntüden oluşur. Ana yapılandırma dosyası, sanal cihazın parametrelerini (ad, tür, API Level, ekran boyutu, RAM ve VM heap boyutu) depolayan config.ini dosyasıdır. Dosya, $HOME/.android/avd/AVDAdı.avd/ dizininde bulunur ve manuel olarak değiştirilebilir, ancak genellikle AVD Manager aracılığıyla düzenlenir.

config.ini'ye ek olarak, AVD dizininde şunlar depolanır: userdata.img (kullanıcı verisi görüntüsü — uygulamalar, ayarlar, dosyalar), system.img (yüklü SDK Platform'un System Image'ına bağlantı), cache.img (önbellek) ve sdcard.img (SD kart görüntüsü). Wipe Data gerçekleştirildiğinde, userdata.img silinir ve yeni bir boş görüntü oluşturulur. Anlık Görüntüler, AVD dizini içinde ayrı bir snapshots/ klasöründe kaydedilir.

System Image, AVD'den ayrı olarak indirilir — bir görüntü birden çok sanal cihaz tarafından kullanılabilir. Sistem görüntüleri Android SDK dizininde depolanır: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Görüntü türleri: google_apis (Google hizmetleriyle), google_apis_playstore (Google Play Store ile) ve default (Google hizmetleri olmadan saf AOSP).

System Images türleri

Görüntü türüGoogle hizmetleriGoogle PlayAmaç
AOSP (default)HayırHayırTemel test, saf Android
Google APIsEvetHayırGoogle hizmetleri, Maps, FCM testi
Google PlayEvetEvetPlay Store ve lisanslama ile tam test

AVD Manager ile AVD oluşturma

AVD Manager, Android Studio'da sanal cihazlar oluşturmak ve yönetmek için grafiksel bir araçtır. Tools → Device Manager menüsü veya araç çubuğu simgesi aracılığıyla açılabilir. AVD Manager, oluşturulan cihazların listesini, durumlarını (çalışıyor/durdu), Android sürümünü ve kullanılabilir eylemleri (başlat, durdur, verileri sil, düzenle) gösterir.

Yeni bir AVD oluşturmak için Create device düğmesine tıklayın. Hazır listeden bir cihaz profili seçin — Google tüm popüler cihazlar için profiller sağlar. Bir profil seçtikten sonra System Image'i belirtin: Android sürümü ve görüntü türü. Yeni projeler için Google APIs görüntüsüyle en son kararlı sürümü seçin. Ardından AVD adını, ekran yönünü, RAM ve VM heap boyutunu yapılandırın. Oluşturulduktan sonra AVD başlatılmaya hazırdır.

Komut satırından adım adım AVD oluşturma

bash
# 1. Kullanılabilir System Images listesi
sdkmanager --list | grep system-images

# 2. Google APIs ile API 35 için System Image yükleme
sdkmanager "system-images;android-35;google_apis;x86_64"

# 3. pixel8_api35 adında AVD oluşturma
avdmanager create avd -n pixel8_api35 \
    -k "system-images;android-35;google_apis;x86_64" \
    -d pixel_8

# 4. Oluşturulan AVD'yi başlatma
emulator -avd pixel8_api35 -gpu host -memory 2048

# 5. Tüm AVD'leri listeleme
avdmanager list avd

AVD donanım özelliklerini yapılandırma

AVD Manager, sanal cihazın donanım özelliklerinin ayrıntılı olarak yapılandırılmasına olanak tanır. Ana parametreler: RAM (rastgele erişim belleği, önerilen değer 2048–4096 MB), VM heap (sanal makine heap boyutu, 256–512 MB), dahili depolama (2–8 GB) ve SD kart (sanal SD kart). Bu parametreler uygulama performansını ve düşük bellek koşullarındaki davranışını etkiler.

Ek ayarlar şunları içerir: kamera (emüle edilmiş veya ana bilgisayar web kamerası bağlantısı), sensörler (ivmeölçer, jiroskop), NFC, Bluetooth ve pil. Örneğin, konum algılamalı uygulamaları test etmek için emülatör kontrol düğmeleri veya ADB aracılığıyla cihaz dönüşü simüle edilebilir. Sensör emülasyonu, fiziksel bir cihazda yeniden oluşturulması zor olan senaryoları test etmeye olanak tanır.

Temel config.ini parametreleri

ParametreAçıklamaÖnerilen değer
hw.ramSizeCihaz RAM'i2048
vm.heapSizeSanal makine heap boyutu256
hw.gpuEnabledDonanım grafik hızlandırmasıyes
hw.gpuModeGPU modu (host/mesa)host
disk.dataPartition.sizeVeri bölümü boyutu4096M
hw.cameraKamera emülasyon türüemulated

Emülatör performansını optimize etme

AVD hızı doğrudan donanım sanallaştırmasına bağlıdır. Windows'ta Windows Hypervisor Platform (WHPX), macOS'ta — Hypervisor.Framework, Linux'ta — KVM kullanılır. Sanallaştırma devre dışı bırakılırsa, AVD saf yazılım emülasyon modunda çalışır ve bu 10–20 kat daha yavaştır. Sanallaştırmanın etkin olup olmadığını kontrol etmek için emülatörü -accel-check bayrağıyla çalıştırın.

İkinci temel faktör System Image mimarisinin seçimidir. x86_64 görüntüleri, Intel ve AMD işlemcili bilgisayarlarda arm64-v8a'dan önemli ölçüde daha hızlı çalışır çünkü ARM talimatlarının dinamik çevirisini gerektirmezler. Intel işlemcili Windows ve macOS'ta geliştirme için her zaman x86_64 görüntüleri kullanın. Mac ARM işlemcilerde (Apple Silicon), yerel arm64-v8a görüntüleri kullanın.

Hızlandırma için komut satırı bayrakları

bash
# Donanım sanallaştırması ve GPU hızlandırmasıyla başlatma
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4

# Sanallaştırma desteğini kontrol etme
emulator -accel-check

# GUI olmadan çalıştırma (CI için)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off

# Hızlı başlatma için anlık görüntüleri kullanma
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save

Emülatör performans ipuçları

Maksimum AVD performansı için: emülatöre en az 2–4 GB RAM ayırın, GPU Host'u etkinleştirin (işleme için bilgisayarın grafik kartını kullanır), gerekli değilse sesi kapatın (-no-audio bayrağı) ve temiz bir duruma hızlı dönüş için Anlık Görüntüleri kullanın. Anlık Görüntüler sistemin tam durumunu kaydeder — bir anlık görüntüden başlatma, 30–60 saniyelik tam önyükleme yerine 2–5 saniye sürer.

Ayrıca AVD'nin bir SSD sürücüsünde saklanması önerilir — sistem başlatma ve APK yükleme sırasındaki G/Ç işlemleri önemli ölçüde hızlanır. Birden çok AVD'yi aynı anda çalıştırmak için bilgisayardaki toplam RAM miktarını artırın ve değişmez emülatörler için -read-only bayrağını kullanın.

Komut satırından AVD yönetimi

Android Studio olmadan komut satırından AVD'ler üzerinde tam kontrol mümkündür. avdmanager ve emulator araçları Android SDK'nın bir parçasıdır ve tüm işlemleri gerçekleştirir: AVD oluşturma, silme, başlatma ve yapılandırma. Komut satırı, grafik arayüzün bulunmadığı CI/CD boru hatlarında ve test otomasyonu için özellikle kullanışlıdır.

Temel AVD yönetim komutları

bash
# Özel parametrelerle AVD oluşturma
avdmanager create avd -n test_device \
    -k "system-images;android-34;google_apis;x86_64" \
    --device "pixel_8" \
    --force

# AVD silme
avdmanager delete avd -n test_device

# AVD kopyalama (dosyaları kopyalayarak)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd

# AVD verilerini sıfırlama
emulator -avd test_device -wipe-data

# Çalışan AVD'ye APK yükleme
adb -s emulator-5554 install app-release.apk

ADB ve AVD: temel komutlar

Bir AVD başlatıldıktan sonra, fiziksel bir cihazda olduğu gibi ADB (Android Debug Bridge) aracılığıyla onunla çalışılabilir. ADB, uygulama yükleme, intent başlatma, olayları (arama, SMS, GPS) simüle etme, ekran görüntüsü alma ve ekran videosu kaydetme olanağı sağlar. Bu, AVD'yi otomatik test için tam teşekküllü bir ortam haline getirir.

bash
# Bağlı cihazları listeleme (AVD dahil)
adb devices

# Gelen arama simülasyonu
adb emu gsm call +15551234567

# GPS koordinatları simülasyonu
adb emu geo fix -122.084 37.422

# Ekran görüntüsü alma
adb exec-out screencap -p > screenshot.png

# SMS gönderme
adb emu sms send +15551234567 "Hello from AVD"

Uygulama kodunda emülatörü kontrol etme

Bazen geliştiricinin, uygulamanın bir emülatörde mi yoksa fiziksel bir cihazda mı çalıştığını kod içinde belirlemesi gerekir. Bu, analitiği devre dışı bırakmak (üretim verilerini kirletmemek için), genişletilmiş günlük kaydını etkinleştirmek veya emülatörde çalışmayan donanıma bağlı işlevleri devre dışı bırakmak için gerekli olabilir. Google, Build sınıfı ve sistem özellikleri aracılığıyla standart kontrol yöntemleri sağlar.

Build özellikleri aracılığıyla kontrol yöntemi

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

// Kullanım
if (EmulatorDetector.isEmulator()) {
    Log.d("App", "Running on emulator — enable debug mode")
}

Sistem özellikleri aracılığıyla kontrol

Ek bir yöntem, Build.getRadioVersion() aracılığıyla sistem özelliklerini okumak ve ro.kernel.qemu'yu kontrol etmektir. Emülatörde, radio version null döndürür ve qemu özelliği 1 olarak ayarlanır. Bu yöntem, Build.FINGERPRINT'in cihaz üreticisi tarafından taklit edilebildiği eski Android sürümlerinde daha güvenilirdir.

kotlin
fun isRunningOnEmulator(): Boolean {
    // radio version ile kontrol — emülatörde her zaman null
    val radioVersion = try {
        Build.getRadioVersion()
    } catch (e: Exception) {
        null
    }
    if (radioVersion.isNullOrBlank()) return true

    // Sistem özellikleri ile kontrol
    return try {
        val props = ProcessBuilder()
            .command("getprop", "ro.kernel.qemu")
            .start()
            .inputStream.bufferedReader().readText().trim()
        props == "1"
    } catch (e: Exception) {
        false
    }
}

Sıkça Sorulan Sorular

AVD fiziksel bir cihazdan nasıl farklıdır?

AVD QEMU üzerinde çalışır ve donanım özelliklerini tam olarak simüle edemez: gerçek kamera, NFC, Bluetooth. AVD, UI testi, yaşam döngüsü kontrolü ve işletim sistemi sürüm uyumluluğu için idealdir. Doğru kamera ve sensör testi için fiziksel bir cihaz gereklidir.

Kaç tane AVD oluşturulmalı?

En az 2–3 AVD: yeni özellikleri kontrol etmek için en son API Level, uyumluluk için minimum desteklenen (minSdk) ve belirli bir ekranda UI testi için popüler bir cihaz modeli (Pixel 8 veya Samsung Galaxy).

AVD neden yavaş çalışıyor?

Ana nedenler: donanım sanallaştırması devre dışı (WHPX, Hypervisor.Framework, KVM), yetersiz RAM (2 GB'den az), GPU Host kapalı. -gpu host'u etkinleştirin ve belleği 2–4 GB'a çıkarın — bu, emülatörü 3–5 kat hızlandıracaktır.

Android Studio olmadan AVD çalıştırılabilir mi?

Evet. Emülatör, komut satırından emulator -avd AVD_Adı ile başlatılır. Bunun için Android SDK, Platform-Tools ve yüklü bir System Image gereklidir. AVD Manager ayrıca avdmanager adlı bir konsol yardımcı programı olarak da kullanılabilir.

AVD fabrika ayarlarına nasıl sıfırlanır?

AVD Manager'da Wipe Data'yı seçin — bu, userdata.img'yi silecek ve emülatörü başlangıç durumuna döndürecektir. Komut satırından: emulator -avd Ad -wipe-data. Anlık Görüntüler ayrı olarak silinmezse korunur.

Özet

  • AVD — QEMU tabanlı sanal Android cihazı, fiziksel telefon olmadan uygulama testine olanak tanır.
  • System Image — belirli bir API Level'deki işletim sistemi görüntüsü, AOSP, Google APIs ve Google Play varyantlarında mevcuttur.
  • AVD Manager — Android Studio'da veya komut satırından sanal cihazlar oluşturmak, yapılandırmak ve yönetmek için araç.
  • AVD performansı için donanım sanallaştırması (WHPX, Hypervisor.Framework, KVM) ve x86_64 görüntü seçimi esastır.
  • ADB aracılığıyla tüm emülasyon işlemleri mevcuttur: aramalar, SMS, GPS, APK yükleme, ekran görüntüleri — fiziksel cihazdaki gibi.
  • Kodda emülatörü algılamak için Build.FINGERPRINT, Build.HARDWARE ve ro.kernel.qemu kontrollerini kullanın.
  • AVD'yi SSD'de saklayın ve başlatmayı hızlandırmak için Anlık Görüntüleri kullanın — bu, önyükleme süresini 60 saniyeden 2–5 saniyeye düşürür.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun