Android Emulator — komponen Android Studio yang menjalankan salinan virtual lengkap perangkat Android di komputer pengembang. Emulator menggunakan QEMU untuk mentranslasikan instruksi ARM ke arsitektur x86_64 host. Dokumentasi Google menjelaskan siklus lengkap konfigurasi perangkat virtual AVD dan akselerasi perangkat keras.
Poin utama
Android Emulator — perangkat virtual Android yang berjalan di atas QEMU (Quick EMUlator) dan meniru platform perangkat keras Android. Tidak seperti iOS Simulator, Android Emulator sepenuhnya mentranslasikan instruksi ARM, memungkinkan eksekusi kode yang dikompilasi untuk arsitektur seluler di host x86_64.
Google merilis Android Emulator pada tahun 2007 bersama dengan versi pertama Android SDK. Sejak itu, emulator telah berevolusi dari solusi lambat khusus ARM menjadi sistem berkinerja tinggi dengan dukungan GPU, akselerasi perangkat keras, dan emulasi sensor. Menurut Google (Android Developer Blog, 2025), emulator modern dengan HAxM bekerja 4-5 kali lebih cepat dari generasi pertama.
Emulator mendukung semua komponen perangkat Android: CPU, GPU, RAM, penyimpanan, layar sentuh, akselerometer, giroskop, GPS, kamera, baterai, NFC, Bluetooth, dan Wi-Fi. Pengembang dapat mensimulasikan panggilan masuk, SMS, berbagai level sinyal jaringan, dan geolokasi melalui Extended Controls.
Android Emulator menggunakan citra sistem (System Images) yang diunduh melalui SDK Manager. Setiap citra sistem berisi salinan lengkap firmware Android untuk level API dan arsitektur prosesor target yang dipilih. Tersedia citra dengan arsitektur berbeda: x86_64 (direkomendasikan dengan HAxM), ARM64 (untuk menguji kompatibilitas ARM), dan Google APIs (dengan Google Play Services terinstal). Untuk Wear OS, Android TV, dan Automotive juga tersedia citra terpisah.
// Memeriksa tipe emulator dalam kode
val isEmulator = Build.FINGERPRINT
.contains("generic") ||
Build.PRODUCT.contains("sdk")
if (isEmulator) {
Timber.d("Aplikasi berjalan di emulator")
}AVD (Android Virtual Device) — konfigurasi perangkat virtual untuk emulator. AVD Manager di Android Studio memungkinkan pembuatan perangkat dengan kombinasi karakteristik apa pun: model, ukuran layar, kerapatan piksel, jumlah RAM, ukuran penyimpanan, dan versi Android.
| Parameter AVD | Rekomendasi untuk pengembangan | Rekomendasi untuk pengujian |
|---|---|---|
| Arsitektur | x86_64 (dengan HAxM) | ARM64 (emulasi murni) |
| RAM | 2048-4096 MB | 1536-2048 MB |
| Penyimpanan internal | 8-16 GB | 4-8 GB |
| Level API | Stabil terbaru | Minimum yang didukung |
| Google Play Services | Aktif | Sesuai kebutuhan |
Membuat AVD dilakukan melalui Device Manager di Android Studio: pilih profil perangkat keras (Pixel, Nexus, Galaxy, dan lainnya), citra sistem, dan konfigurasikan parameter. Setelah dibuat, perangkat muncul di daftar Run Configurations untuk menjalankan aplikasi secara langsung.
Emulator mendukung Quick Boot — menyimpan status AVD sebagai snapshot dan mengembalikannya saat startup berikutnya. Waktu muat berkurang dari 30-60 detik menjadi 2-5 detik. Untuk mereset ke keadaan bersih, gunakan Cold Boot Now di AVD Manager.
Translasi ARM — teknologi kunci Android Emulator, yang mengonversi instruksi ARM ke x86_64 secara langsung. Tanpa translasi, emulator hanya dapat menjalankan citra x86_64, yang membatasi pengujian. Google menggunakan libhoudini untuk translasi ARM→x86 dan pustaka Intel untuk akselerasi HAXM.
# Memeriksa status HAxM di Windows
sc query "IntelHaxm"
# Menginstal HAxM melalui SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Menjalankan emulator dengan akselerasi perangkat keras
emulator -avd Pixel_9_API_35 -accel on -gpu autoIntel HAxM (Hardware Accelerated Execution Manager) — driver virtualisasi untuk prosesor Intel VT-x, mempercepat emulator 3-5 kali lipat. Di Windows dengan prosesor AMD, gunakan Windows Hyper-V Platform dan WHPX. Tanpa akselerasi perangkat keras, emulator bekerja lambat, dengan penundaan animasi hingga 1-2 detik.
Untuk macOS di Apple Silicon (seri M), akselerasi perangkat keras bekerja secara native melalui Hypervisor.framework. Menurut Google (Android Emulator Release Notes 2025), emulator di M2 Max mencapai 95% kinerja perangkat nyata untuk operasi dasar.
Pilihan antara emulator dan perangkat nyata tergantung pada tahap pengembangan. Di emulator nyaman untuk mengembangkan dan men-debug: start cepat, deploy instan, Extended Controls untuk simulasi sensor. Di perangkat nyata — pengujian akhir kinerja, baterai, dan kerja dengan perangkat keras.
| Skenario | Emulator | Perangkat nyata |
|---|---|---|
| Pengembangan UI | Ya (cepat) | Tidak (deploy lama) |
| Pengujian kinerja | Tidak (angka lebih tinggi) | Ya (pengukuran nyata) |
| Emulasi sensor (GPS, NFC) | Ya (Extended Controls) | Terbatas |
| Konsumsi daya | Tidak didukung | Ya (Battery Historian) |
| Pengujian jaringan (2G/3G/4G/5G) | Ya (simulasi kecepatan) | Ya (dengan kartu SIM) |
| Otomatisasi CI/CD | Ya (tanpa perangkat fisik) | Sulit (farm perangkat) |
Kinerja emulator dengan akselerasi perangkat keras seringkali lebih tinggi dari perangkat nyata kelas bawah. Oleh karena itu, lakukan pengujian akhir pada perangkat nyata dengan tingkat kinerja target.
Menentukan lingkungan eksekusi di Kotlin berguna untuk menonaktifkan kode yang salah atau menambahkan informasi debug. Android menyediakan Build.FINGERPRINT, Build.PRODUCT, dan Build.HARDWARE untuk tujuan ini.
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", "Lingkungan: emulator")
}
}
}Menggunakan detektor emulator membantu saat debug: di emulator Anda dapat mengaktifkan log yang diperluas, menonaktifkan animasi, atau mengganti panggilan API nyata dengan mock. Hindari pengecekan di build produksi jika tidak diperlukan oleh logika bisnis aplikasi.
Android Emulator digunakan untuk pengujian otomatis di server CI. Untuk menjalankan pengujian, perlu membuat AVD, menjalankan emulator, dan menunggu sistem dimuat sepenuhnya. Gradle Managed Devices menyederhanakan proses ini: konfigurasi AVD dijelaskan di build.gradle.kts.
// build.gradle.kts — Gradle Managed Devices
android {
testOptions {
managedDevices {
devices {
register<ManagedVirtualDevice>("pixel9Api35") {
device = "Pixel 9"
apiLevel = 35
systemImageSource = "google"
}
}
}
}
}Untuk menjalankan emulator secara manual, gunakan baris perintah: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect. Bendera -no-window menonaktifkan antarmuka grafis untuk lingkungan server, dan -gpu swiftshader_indirect menyediakan rendering perangkat lunak tanpa GPU host.
Extended Controls di Android Emulator menyediakan alat yang kuat untuk simulasi kondisi jaringan: latensi (latency), bandwidth, dan tipe jaringan (GPRS, EDGE, 3G, 4G, 5G). Ini memungkinkan pengujian perilaku aplikasi pada koneksi lambat tanpa bepergian secara fisik ke area dengan cakupan buruk.
Simulasi sensor mencakup akselerometer, giroskop, dan magnetometer melalui model 3D virtual perangkat. Untuk GPS, Anda dapat memuat file GPX dengan rute — emulator mensimulasikan pergerakan di sepanjang koordinat, yang penting untuk menguji aplikasi navigasi. Kamera diemulasikan melalui webcam host atau pemuatan gambar.
Multi-display di Android Emulator mendukung beberapa layar untuk tablet dan perangkat lipat. Extended Controls memungkinkan perubahan orientasi, ukuran layar, dan kerapatan piksel (DPI) tanpa memulai ulang emulator. Untuk menguji perangkat lipat, tersedia mode Foldable dengan peralihan antara keadaan terlipat dan terbuka.
Emulator tidak hanya mendukung ponsel pintar, tetapi juga Wear OS dan Android TV. Untuk Wear OS tersedia konfigurasi AVD bundar dan persegi panjang, simulasi putaran bezel dan gerakan swipe, serta pengujian interaksi dengan emulator telepon. Untuk Android TV digunakan antarmuka dengan navigasi D-pad. Kedua platform mendukung akselerasi perangkat keras dan pengujian dengan Google Play Services, yang penting untuk siklus pengembangan jam tangan pintar dan aplikasi televisi.
Pertanyaan yang sering diajukan
Android Emulator menggunakan emulasi ARM penuh melalui QEMU dengan translasi instruksi, sedangkan iOS Simulator mengompilasi kode untuk arsitektur host. Android Emulator mendukung GPU, kamera, sensor, Bluetooth, NFC — iOS Simulator tidak mendukung sebagian besar fungsi ini.
Di Kotlin, periksa Build.FINGERPRINT untuk keberadaan "generic" atau "emulator", serta Build.HARDWARE untuk "ranchu" atau "goldfish". Gunakan Build.PRODUCT sebagai penanda tambahan — untuk emulator berisi "sdk_google" atau "google_sdk".
Aktifkan Intel HAxM (Intel VT-x) atau Windows Hyper-V Platform (WHPX) untuk prosesor AMD. Gunakan citra sistem x86_64 dengan akselerasi perangkat keras. Alokasikan setidaknya 4 GB RAM ke emulator di AVD Manager. Aktifkan Quick Boot untuk pemuatan snapshot.
Ya, Android Emulator mendukung emulasi NFC mulai dari Android 10 (API 29). Extended Controls → Phone → NFC memungkinkan pengiriman pesan NDEF. Mode baca/tulis tag, peer-to-peer, dan HCE didukung. Untuk pengujian lengkap, gunakan perangkat nyata dengan chip NFC.
Untuk pengembangan sehari-hari pilih x86_64 dengan Google APIs — kinerja maksimal dan set layanan lengkap. Untuk pengujian kompatibilitas gunakan citra ARM64. Untuk CI — citra tanpa Google Play Services, lebih kecil dan lebih cepat dimuat.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga