Android Emulator — apa itu dan bagaimana cara kerja emulasi

Penulis: IT Sectr Diterbitkan: 2026-02-09 Waktu membaca: 8 mnt

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 — emulasi lengkap berbasis QEMU dengan dukungan translasi ARM, GPU, sensor dan NFC
  • AVD Manager — alat untuk membuat dan mengonfigurasi perangkat virtual dengan pemilihan level API, arsitektur dan karakteristik perangkat keras
  • HAxM dan Hyper-V — akselerasi perangkat keras untuk meningkatkan kinerja emulator 3-5 kali lipat
  • Pengecekan dalam kode — Build.FINGERPRINT dan Build.PRODUCT memungkinkan deteksi eksekusi di emulator pada Kotlin
  • Emulasi sensor — akselerometer, giroskop, NFC, GPS dan kamera didukung di emulator

Apa itu Android Emulator?

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.

Citra sistem untuk emulator

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.

kotlin
// Memeriksa tipe emulator dalam kode
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("Aplikasi berjalan di emulator")
}

Mengatur AVD di Android Studio

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 AVDRekomendasi untuk pengembanganRekomendasi untuk pengujian
Arsitekturx86_64 (dengan HAxM)ARM64 (emulasi murni)
RAM2048-4096 MB1536-2048 MB
Penyimpanan internal8-16 GB4-8 GB
Level APIStabil terbaruMinimum yang didukung
Google Play ServicesAktifSesuai 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.

Mode Snapshot untuk start cepat

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 dan akselerasi perangkat keras

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.

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

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

Emulator vs perangkat nyata

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.

SkenarioEmulatorPerangkat nyata
Pengembangan UIYa (cepat)Tidak (deploy lama)
Pengujian kinerjaTidak (angka lebih tinggi)Ya (pengukuran nyata)
Emulasi sensor (GPS, NFC)Ya (Extended Controls)Terbatas
Konsumsi dayaTidak didukungYa (Battery Historian)
Pengujian jaringan (2G/3G/4G/5G)Ya (simulasi kecepatan)Ya (dengan kartu SIM)
Otomatisasi CI/CDYa (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.

Deteksi emulator dalam kode Kotlin

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.

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", "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.

Menguji aplikasi di emulator

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.

kotlin
// 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.

Emulasi jaringan dan sensor

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.

Android Emulator untuk Wear OS dan Android TV

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

Apa perbedaan Android Emulator dengan iOS Simulator?

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.

Bagaimana cara memeriksa dalam kode apakah aplikasi berjalan di emulator?

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

Bagaimana cara mempercepat Android Emulator?

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.

Bisakah NFC diuji di Android Emulator?

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.

Citra sistem mana yang terbaik untuk AVD?

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

  • Android Emulator — emulasi lengkap perangkat Android berbasis QEMU dengan dukungan translasi ARM, GPU, sensor dan NFC
  • AVD Manager — konfigurasi perangkat virtual dengan pemilihan arsitektur, level API, RAM dan karakteristik perangkat keras
  • Akselerasi perangkat keras — HAxM, Hyper-V dan WHPX meningkatkan kinerja emulator 3-5 kali lipat
  • Pengecekan lingkungan — Build.FINGERPRINT, Build.PRODUCT dan Build.HARDWARE untuk deteksi eksekusi di emulator
  • Extended Controls — simulasi GPS, NFC, sensor, panggilan masuk dan SMS untuk pengujian skenario
  • Otomatisasi CI — Gradle Managed Devices dan citra x86_64 untuk pengujian efisien di CI
  • Quick Boot — mode snapshot mengurangi waktu muat emulator hingga 2-5 detik

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.

Diskusikan proyek

Baca juga