Android Emulator — nedir ve emülasyon nasıl çalışır

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

Android Emulator, geliştiricinin bilgisayarında bir Android cihazının tam sanal kopyasını çalıştıran bir Android Studio bileşenidir. Emülatör, ARM talimatlarını ana bilgisayarın x86_64 mimarisine çevirmek için QEMU kullanır. Google Dokümantasyonu, AVD sanal cihazları ve donanım hızlandırma kurulumunun tam döngüsünü açıklar.

Önemli Noktalar

  • Android Emulator — ARM çevirisi, GPU, sensörler ve NFC desteğiyle QEMU tabanlı tam emülasyon
  • AVD Manager — API seviyesi, mimari ve donanım özellikleri seçimiyle sanal cihaz oluşturma ve yapılandırma aracı
  • HAxM ve Hyper-V — emülatör performansını 3-5 kat artırmak için donanım hızlandırma
  • Kodda kontrol — Build.FINGERPRINT ve Build.PRODUCT, Kotlin'de emülatörde çalıştırmayı tespit etmeye olanak tanır
  • Sensör emülasyonu — ivmeölçer, jiroskop, NFC, GPS ve kamera emülatörde desteklenir

Android Emulator nedir?

Android Emulator, QEMU (Quick EMUlator) üzerinde çalışan ve Android donanım platformunu emüle eden sanal bir Android cihazıdır. iOS Simulator'ün aksine, Android Emulator ARM talimatlarını tamamen çevirerek mobil mimari için derlenmiş kodun x86_64 ana bilgisayarda çalışmasına olanak tanır.

Google, Android Emulator'ü 2007 yılında Android SDK'nın ilk sürümüyle birlikte yayınladı. O zamandan beri emülatör, yavaş yalnızca ARM çözümünden GPU desteği, donanım hızlandırma ve sensör emülasyonuna sahip yüksek performanslı bir sisteme dönüştü. Google'a göre (Android Developer Blog, 2025), HAxM'li modern emülatör, ilk nesle göre 4-5 kat daha hızlı çalışır.

Emülatör, bir Android cihazının tüm bileşenlerini destekler: CPU, GPU, RAM, depolama, dokunmatik ekran, ivmeölçer, jiroskop, GPS, kamera, pil, NFC, Bluetooth ve Wi-Fi. Geliştirici, Extended Controls aracılığıyla gelen aramaları, SMS'leri, çeşitli ağ sinyal seviyelerini ve coğrafi konumu simüle edebilir.

Emülatör için sistem görüntüleri

Android Emulator, SDK Manager aracılığıyla indirilen sistem görüntülerini (System Images) kullanır. Her sistem görüntüsü, seçilen API seviyesi ve hedef işlemci mimarisi için Android donanım yazılımının tam bir kopyasını içerir. Farklı mimarilere sahip görüntüler mevcuttur: x86_64 (HAxM ile önerilir), ARM64 (ARM uyumluluk testi için) ve Google APIs (önceden yüklenmiş Google Play Services ile). Wear OS, Android TV ve Automotive için ayrı görüntüler de mevcuttur.

kotlin
// Kodda emülatör türü kontrolü
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("Uygulama emülatörde çalışıyor")
}

Android Studio'da AVD Kurulumu

AVD (Android Virtual Device), emülatör için sanal cihaz yapılandırmasıdır. Android Studio'daki AVD Manager, model, ekran boyutu, piksel yoğunluğu, RAM miktarı, depolama boyutu ve Android sürümü gibi herhangi bir özellik kombinasyonuyla cihazlar oluşturmayı sağlar.

AVD ParametresiGeliştirme için öneriTest için öneri
Mimarix86_64 (HAxM ile)ARM64 (saf emülasyon)
RAM2048-4096 MB1536-2048 MB
Dahili depolama8-16 GB4-8 GB
API SeviyesiEn son kararlıDesteklenen minimum
Google Play ServicesEtkinleştirGerektiğinde

AVD oluşturma, Android Studio'daki Device Manager aracılığıyla yapılır: bir donanım profili (Pixel, Nexus, Galaxy ve diğerleri), sistem görüntüsü seçin ve parametreleri yapılandırın. Oluşturulduktan sonra cihaz, anında uygulama başlatma için Run Configurations listesinde görünür.

Hızlı başlatma için Snapshot modu

Emülatör Quick Boot'u destekler — AVD durumunu anlık görüntü olarak kaydeder ve bir sonraki başlatışta geri yükler. Önyükleme süresi 30-60 saniyeden 2-5 saniyeye düşer. Temiz bir duruma sıfırlamak için AVD Manager'da Cold Boot Now'ı kullanın.

ARM Çevirisi ve Donanım Hızlandırma

ARM çevirisi, ARM talimatlarını anında x86_64'e dönüştüren Android Emulator'ün temel bir teknolojisidir. Çeviri olmadan, emülatör yalnızca x86_64 görüntülerini çalıştırabilir ve bu da test yeteneklerini sınırlar. Google, ARM→x86 çevirisi için libhoudini'yi ve HAXM hızlandırması için Intel kitaplıklarını kullanır.

bash
# Windows'ta HAxM durumu kontrolü
sc query "IntelHaxm"

# SDK Manager ile HAxM yükleme
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# Emülatörü donanım hızlandırmayla başlatma
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager), Intel VT-x işlemciler için emülatörü 3-5 kat hızlandıran bir sanallaştırma sürücüsüdür. AMD işlemcili Windows'ta Windows Hyper-V Platform ve WHPX kullanın. Donanım hızlandırma olmadan emülatör yavaş çalışır ve animasyon gecikmeleri 1-2 saniyeye kadar çıkabilir.

Apple Silicon (M serisi) ile macOS'ta donanım hızlandırma, Hypervisor.framework aracılığıyla yerel olarak çalışır. Google'a göre (Android Emulator Release Notes 2025), M2 Max'teki emülatör, temel işlemlerde gerçek bir cihazın performansının %95'ine ulaşır.

Emülatör vs Gerçek Cihaz

Emülatör ve gerçek cihaz arasındaki seçim geliştirme aşamasına bağlıdır. Emülatörde geliştirme ve hata ayıklama kolaydır: hızlı başlatma, anında dağıtım, sensör simülasyonu için Extended Controls. Gerçek cihazda — son performans, pil ve donanım testleri yapılır.

SenaryoEmülatörGerçek Cihaz
UI geliştirmeEvet (hızlı)Hayır (yavaş dağıtım)
Performans testiHayır (şişirilmiş metrikler)Evet (gerçek ölçümler)
Sensör emülasyonu (GPS, NFC)Evet (Extended Controls)Sınırlı
Güç tüketimiDesteklenmiyorEvet (Battery Historian)
Ağ testi (2G/3G/4G/5G)Evet (hız simülasyonu)Evet (SIM kart ile)
CI/CD otomasyonuEvet (fiziksel cihaz gerekmez)Zor (cihaz çiftliği)

Donanım hızlandırmalı emülatörün performansı genellikle gerçek bir bütçe cihazından daha yüksektir. Bu nedenle, son testleri hedef performans seviyesindeki gerçek cihazlarda gerçekleştirin.

Kotlin Kodunda Emülatör Kontrolü

Kotlin'de çalışma zamanı ortamını tespit etmek, hatalı kodu devre dışı bırakmak veya hata ayıklama bilgisi eklemek için kullanışlıdır. Android bu amaçla Build.FINGERPRINT, Build.PRODUCT ve Build.HARDWARE sağlar.

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", "Ortam: emülatör")
        }
    }
}

Emülatör dedektörü kullanmak, hata ayıklama sırasında yardımcı olur: emülatörde genişletilmiş günlük kaydını etkinleştirebilir, animasyonları devre dışı bırakabilir veya gerçek API çağrılarını mock'larla değiştirebilirsiniz. Uygulamanın iş mantığı için gerekli olmadıkça, üretim yapılarında kontrol etmekten kaçının.

Emülatörde Uygulama Testi

Android Emulator, CI sunucularında otomatik test için kullanılır. Testleri çalıştırmak için bir AVD oluşturmanız, emülatörü başlatmanız ve sistemin tamamen yüklenmesini beklemeniz gerekir. Gradle Managed Devices bu süreci basitleştirir: AVD yapılandırması build.gradle.kts içinde tanımlanır.

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

Emülatörü manuel olarak başlatmak için komut satırını kullanın: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. -no-window bayrağı, sunucu ortamları için grafik arayüzü devre dışı bırakır ve -gpu swiftshader_indirect, ana bilgisayar GPU'su olmadan yazılım oluşturma sağlar.

Ağ ve sensör emülasyonu

Android Emulator'deki Extended Controls, ağ koşullarını simüle etmek için güçlü araçlar sağlar: gecikme süresi, bant genişliği ve ağ türü (GPRS, EDGE, 3G, 4G, 5G). Bu, zayıf kapsama alanına fiziksel olarak seyahat etmeden yavaş bağlantılarda uygulama davranışını test etmeye olanak tanır.

Sensör simülasyonu, sanal 3D cihaz modelleri aracılığıyla ivmeölçer, jiroskop ve manyetometreyi içerir. GPS için, rotaları olan GPX dosyalarını yükleyebilirsiniz — emülatör koordinatlar boyunca hareketi simüle eder, bu navigasyon uygulamalarını test etmek için kritiktir. Kamera, ana bilgisayar web kamerası veya görüntü yükleme yoluyla emüle edilir.

Android Emulator'de çoklu ekran, tabletler ve katlanabilir cihazlar için birden fazla ekranı destekler. Extended Controls, emülatörü yeniden başlatmadan yönlendirmeyi, ekran boyutunu ve piksel yoğunluğunu (DPI) değiştirmeye olanak tanır. Katlanabilir cihazları test etmek için, katlanmış ve açılmış durum arasında geçiş yapan Foldable modları mevcuttur.

Wear OS ve Android TV için Android Emulator

Emülatör yalnızca akıllı telefonları değil, aynı zamanda Wear OS ve Android TV'yi de destekler. Wear OS için yuvarlak ve dikdörtgen AVD yapılandırmaları, çerçeve dönüş simülasyonu ve kaydırma hareketlerinin yanı sıra telefon emülatörüyle etkileşim testi mevcuttur. Android TV için D-pad navigasyonlu bir arayüz kullanılır. Her iki platform da donanım hızlandırmayı ve Google Play Services ile testi destekler; bu, akıllı saat ve TV uygulaması geliştirme döngüsü için önemlidir.

Sıkça Sorulan Sorular

Android Emulator, iOS Simulator'den nasıl farklıdır?

Android Emulator, QEMU aracılığıyla tam ARM emülasyonu ve talimat çevirisi kullanırken, iOS Simulator ana bilgisayar mimarisi için kod derler. Android Emulator GPU, kamera, sensörler, Bluetooth, NFC'yi destekler — iOS Simulator bu özelliklerin çoğunu desteklemez.

Kodda uygulamanın emülatörde çalışıp çalışmadığını nasıl kontrol edebilirim?

Kotlin'de, "generic" veya "emulator" için Build.FINGERPRINT'i ve "ranchu" veya "goldfish" için Build.HARDWARE'i kontrol edin. Ek işaretçi olarak Build.PRODUCT'u kullanın — emülatör için "sdk_google" veya "google_sdk" içerir.

Android Emulator nasıl hızlandırılır?

AMD işlemciler için Intel HAxM'i (Intel VT-x) veya Windows Hyper-V Platform'u (WHPX) etkinleştirin. Donanım hızlandırmalı x86_64 sistem görüntülerini kullanın. AVD Manager'da emülatöre en az 4 GB RAM ayırın. Anlık görüntü yüklemesi için Quick Boot'u etkinleştirin.

Android Emulator'de NFC test edilebilir mi?

Evet, Android Emulator, Android 10'dan (API 29) itibaren NFC emülasyonunu destekler. Extended Controls → Phone → NFC, NDEF mesajları göndermeye olanak tanır. Etiket okuma/yazma, eşler arası ve HCE modları desteklenir. Tam test için NFC çipli gerçek bir cihaz kullanın.

AVD için hangi sistem görüntüleri en iyisidir?

Günlük geliştirme için Google APIs ile x86_64'ü seçin — maksimum performans ve tam hizmet seti. Uyumluluk testi için ARM64 görüntüleri kullanın. CI için — Google Play Services olmayan görüntüler, daha küçüktür ve daha hızlı önyüklenir.

Özet

  • Android Emulator — ARM çevirisi, GPU, sensörler ve NFC desteğiyle QEMU'da tam Android cihaz emülasyonu
  • AVD Manager — mimari, API seviyesi, RAM ve donanım özellikleri seçimiyle sanal cihaz yapılandırması
  • Donanım hızlandırma — HAxM, Hyper-V ve WHPX emülatör performansını 3-5 kat artırır
  • Ortam tespiti — Build.FINGERPRINT, Build.PRODUCT ve Build.HARDWARE ile emülatörde çalıştırmayı tespit etme
  • Extended Controls — senaryo testi için GPS, NFC, sensör, gelen arama ve SMS simülasyonu
  • CI otomasyonu — verimli CI testi için Gradle Managed Devices ve x86_64 görüntüleri
  • Quick Boot — anlık görüntü modu emülatör önyükleme süresini 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