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, 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.
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.
// 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")
}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 Parametresi | Geliştirme için öneri | Test için öneri |
|---|---|---|
| Mimari | x86_64 (HAxM ile) | ARM64 (saf emülasyon) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Dahili depolama | 8-16 GB | 4-8 GB |
| API Seviyesi | En son kararlı | Desteklenen minimum |
| Google Play Services | Etkinleştir | Gerektiğ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.
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, 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.
# 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 autoIntel 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 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.
| Senaryo | Emülatör | Gerçek Cihaz |
|---|---|---|
| UI geliştirme | Evet (hızlı) | Hayır (yavaş dağıtım) |
| Performans testi | Hayır (şişirilmiş metrikler) | Evet (gerçek ölçümler) |
| Sensör emülasyonu (GPS, NFC) | Evet (Extended Controls) | Sınırlı |
| Güç tüketimi | Desteklenmiyor | Evet (Battery Historian) |
| Ağ testi (2G/3G/4G/5G) | Evet (hız simülasyonu) | Evet (SIM kart ile) |
| CI/CD otomasyonu | Evet (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'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.
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.
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.
// 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.
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.
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, 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.
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.
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.
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.
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
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.
Ayrıca okuyun