AVD (Android Virtual Device) — adalah konfigurasi emulator yang meniru perangkat Android nyata di komputer pengembang. Setiap AVD mencakup versi OS yang dipilih (System Image), jenis perangkat (telepon, tablet, Wear OS), ukuran layar, dan jumlah memori. Menurut Google Android Developers, 2026, AVD digunakan untuk menguji aplikasi pada berbagai versi dan konfigurasi Android tanpa perlu membeli puluhan perangkat fisik. QEMU — hypervisor tempat emulator berjalan.
Poin Utama
AVD (Android Virtual Device) — adalah konfigurasi perangkat lunak yang mendeskripsikan perangkat Android virtual. Tidak seperti telepon fisik, AVD tidak memerlukan perangkat keras — ia berjalan di komputer melalui emulator Android berbasis QEMU. Pengembang membuat AVD sebanyak yang diperlukan untuk pengujian: untuk berbagai versi Android, ukuran layar, jumlah memori, dan kerapatan piksel.
Setiap AVD terikat pada SDK Platform tertentu. Ini berarti untuk membuat AVD dengan Android 14 (API Level 34), Anda harus menginstal System Image versi ini terlebih dahulu melalui SDK Manager. System Image adalah gambar sistem operasi yang mencakup semua aplikasi sistem, layanan Google (jika gambar Google APIs dipilih), dan komponen runtime. Google merekomendasikan penggunaan gambar Google APIs dengan layanan Google Play untuk kompatibilitas maksimal dengan perangkat nyata.
AVD sangat diperlukan dalam pengembangan karena beberapa alasan. Pertama, memungkinkan pengujian aplikasi pada berbagai versi Android tanpa membeli puluhan perangkat. Kedua, AVD mendukung Snapshots — penyimpanan status sistem, yang mempercepat startup. Ketiga, emulator terintegrasi dengan Android Studio: instalasi APK, debugging, dan logging bekerja seperti pada perangkat fisik.
AVD mendukung berbagai jenis perangkat: telepon (Phone), tablet (Tablet), jam tangan (Wear OS), televisi (Android TV), dan sistem otomotif (Android Automotive). Untuk setiap jenis, AVD Manager menyediakan profil siap pakai dari Google: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab, dan lainnya. Profil perangkat menentukan ukuran layar, resolusi, kerapatan piksel (dpi), dan navigasi (gestur atau tombol).
| Jenis Perangkat | Contoh Profil | Resolusi | dpi |
|---|---|---|---|
| Phone | Pixel 8 | 1080x2400 | 420 |
| Phone | Pixel 9 Pro | 1280x2856 | 490 |
| Tablet | Pixel Tablet | 2560x1600 | 320 |
| Wear OS | Pixel Watch | 384x384 | 320 |
| Android TV | Android TV 4K | 1920x1080 | 240 |
Setiap AVD adalah kumpulan file konfigurasi dan gambar. File konfigurasi utama — config.ini, yang menyimpan parameter perangkat virtual: nama, jenis, API Level, ukuran layar, jumlah RAM dan VM heap. File ini terletak di direktori $HOME/.android/avd/NamaAVD.avd/ dan dapat diubah secara manual, meskipun biasanya diedit melalui AVD Manager.
Selain config.ini, di direktori AVD disimpan: userdata.img (gambar data pengguna — aplikasi, pengaturan, file), system.img (referensi ke System Image dari SDK Platform yang terinstal), cache.img (cache), dan sdcard.img (gambar kartu SD). Saat menjalankan Wipe Data, userdata.img dihapus dan gambar kosong baru dibuat. Snapshots disimpan di folder terpisah snapshots/ di dalam direktori AVD.
System Image diunduh terpisah dari AVD — satu gambar dapat digunakan oleh beberapa perangkat virtual. Gambar sistem disimpan di direktori Android SDK: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Jenis gambar: google_apis (dengan layanan Google), google_apis_playstore (dengan Google Play Store), dan default (AOSP murni tanpa layanan Google).
| Jenis Gambar | Layanan Google | Google Play | Untuk apa |
|---|---|---|---|
| AOSP (default) | Tidak | Tidak | Pengujian dasar, Android murni |
| Google APIs | Ya | Tidak | Pengujian layanan Google, Maps, FCM |
| Google Play | Ya | Ya | Pengujian lengkap dengan Play Store dan lisensi |
AVD Manager — adalah alat grafis di Android Studio untuk membuat dan mengelola perangkat virtual. Dapat dibuka melalui menu Tools → Device Manager atau melalui ikon di bilah alat. AVD Manager menampilkan daftar perangkat yang dibuat, statusnya (berjalan/berhenti), versi Android, dan tindakan yang tersedia (mulai, hentikan, wipe data, edit).
Untuk membuat AVD baru, klik tombol Create device. Pilih profil perangkat dari daftar yang sudah siap — Google menyediakan profil untuk semua perangkat populer. Setelah memilih profil, tentukan System Image: versi Android dan jenis gambar. Untuk proyek baru, pilih versi stabil terbaru dengan gambar Google APIs. Kemudian konfigurasikan nama AVD, orientasi layar, jumlah RAM dan VM heap. Setelah dibuat, AVD siap dijalankan.
# Daftar System Images yang tersedia
sdkmanager --list | grep system-images
# Menginstal System Image untuk API 35 dengan Google APIs
sdkmanager "system-images;android-35;google_apis;x86_64"
# Membuat AVD dengan nama pixel8_api35
avdmanager create avd -n pixel8_api35 \
-k "system-images;android-35;google_apis;x86_64" \
-d pixel_8
# Menjalankan AVD yang telah dibuat
emulator -avd pixel8_api35 -gpu host -memory 2048
# Daftar semua AVD
avdmanager list avd
AVD Manager memungkinkan konfigurasi mendetail karakteristik perangkat keras perangkat virtual. Parameter utama: RAM (memori akses acak, nilai yang disarankan 2048–4096 MB), VM heap (ukuran heap mesin virtual, 256–512 MB), Internal Storage (penyimpanan internal, 2–8 GB), dan SD Card (kartu SD virtual). Parameter ini memengaruhi kinerja aplikasi dan perilakunya saat kehabisan memori.
Pengaturan tambahan meliputi: kamera (diemulasi atau menghubungkan webcam host), sensor (akselerometer, giroskop), NFC, Bluetooth, dan baterai. Misalnya, untuk menguji aplikasi pendeteksi posisi, rotasi perangkat dapat diemulasi melalui tombol kontrol emulator atau melalui ADB. Emulasi sensor memungkinkan pengujian skenario yang sulit direproduksi pada perangkat fisik.
| Parameter | Deskripsi | Nilai yang Disarankan |
|---|---|---|
| hw.ramSize | Memori akses acak perangkat | 2048 |
| vm.heapSize | Ukuran heap mesin virtual | 256 |
| hw.gpuEnabled | Percepatan perangkat keras grafis | yes |
| hw.gpuMode | Mode GPU (host/mesa) | host |
| disk.dataPartition.size | Ukuran partisi data | 4096M |
| hw.camera | Jenis emulasi kamera | emulated |
Kecepatan operasi AVD secara langsung tergantung pada virtualisasi perangkat keras. Di Windows digunakan Windows Hypervisor Platform (WHPX), di macOS — Hypervisor.Framework, di Linux — KVM. Jika virtualisasi dinonaktifkan, AVD beroperasi dalam mode emulasi perangkat lunak murni, yang 10–20 kali lebih lambat. Untuk memeriksa apakah virtualisasi diaktifkan, jalankan emulator dengan flag -accel-check.
Faktor kunci kedua adalah pemilihan arsitektur System Image. Gambar x86_64 berjalan jauh lebih cepat daripada arm64-v8a di komputer dengan prosesor Intel dan AMD, karena tidak memerlukan penerjemahan dinamis instruksi ARM. Selalu gunakan gambar x86_64 untuk pengembangan di Windows dan macOS dengan prosesor Intel. Di prosesor ARM Mac (Apple Silicon) gunakan gambar arm64-v8a asli.
# Menjalankan dengan virtualisasi perangkat keras dan akselerasi GPU
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4
# Memeriksa dukungan virtualisasi
emulator -accel-check
# Menjalankan tanpa antarmuka grafis (untuk CI)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off
# Menggunakan snapshot untuk startup cepat
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save
Untuk kinerja AVD maksimal: alokasikan emulator setidaknya 2–4 GB RAM, aktifkan GPU Host (menggunakan kartu grafis komputer untuk rendering), nonaktifkan suara (flag -no-audio), jika tidak diperlukan, dan gunakan Snapshots untuk kembali cepat ke keadaan bersih. Snapshots menyimpan status sistem lengkap — startup dari snapshot memakan waktu 2–5 detik, bukan 30–60 detik untuk pemuatan penuh.
Disarankan juga menyimpan AVD di SSD — operasi I/O saat memuat sistem dan menginstal APK akan dipercepat secara signifikan. Untuk bekerja dengan beberapa AVD secara bersamaan, tingkatkan jumlah total RAM di komputer dan gunakan flag -read-only untuk emulator yang tidak dapat diubah.
Kontrol penuh atas AVD dimungkinkan dari baris perintah tanpa Android Studio. Alat avdmanager dan emulator adalah bagian dari Android SDK dan melakukan semua operasi: membuat, menghapus, menjalankan, dan mengonfigurasi AVD. Baris perintah sangat berguna dalam pipeline CI/CD, di mana tidak ada antarmuka grafis, dan untuk otomatisasi pengujian.
# Buat AVD dengan parameter khusus
avdmanager create avd -n test_device \
-k "system-images;android-34;google_apis;x86_64" \
--device "pixel_8" \
--force
# Hapus AVD
avdmanager delete avd -n test_device
# Klon AVD (melalui penyalinan file)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd
# Reset data AVD
emulator -avd test_device -wipe-data
# Instal APK pada AVD yang berjalan
adb -s emulator-5554 install app-release.apk
Setelah AVD dijalankan, Anda dapat bekerja dengannya melalui ADB (Android Debug Bridge) seperti dengan perangkat fisik. ADB memungkinkan menginstal aplikasi, menjalankan intent, mengemulasi peristiwa (panggilan, SMS, GPS), mengambil tangkapan layar, dan merekam video layar. Ini menjadikan AVD lingkungan lengkap untuk pengujian terotomatisasi.
# Daftar perangkat yang terhubung (termasuk AVD)
adb devices
# Emulasi panggilan masuk
adb emu gsm call +15551234567
# Emulasi koordinat GPS
adb emu geo fix -122.084 37.422
# Ambil tangkapan layar
adb exec-out screencap -p > screenshot.png
# Kirim SMS
adb emu sms send +15551234567 "Hello from AVD"
Terkadang pengembang perlu menentukan dalam kode apakah aplikasi berjalan di emulator atau di perangkat fisik. Ini mungkin diperlukan untuk menonaktifkan analitik (agar tidak mengotori data produksi), mengaktifkan pencatatan yang diperluas, atau menonaktifkan fungsi yang bergantung pada perangkat keras yang tidak berfungsi di emulator. Google menyediakan metode pemeriksaan standar melalui kelas Build dan properti sistem.
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")
}
}
// Penggunaan
if (EmulatorDetector.isEmulator()) {
Log.d("App", "Running on emulator — enable debug mode")
}
Metode tambahan — membaca properti sistem melalui Build.getRadioVersion() dan memeriksa ro.kernel.qemu. Di emulator, radio version mengembalikan null, dan properti qemu disetel ke 1. Metode ini lebih andal pada versi Android lama di mana Build.FINGERPRINT dapat diubah oleh produsen perangkat.
fun isRunningOnEmulator(): Boolean {
// Pemeriksaan melalui radio version — di emulator selalu null
val radioVersion = try {
Build.getRadioVersion()
} catch (e: Exception) {
null
}
if (radioVersion.isNullOrBlank()) return true
// Pemeriksaan melalui properti sistem
return try {
val props = ProcessBuilder()
.command("getprop", "ro.kernel.qemu")
.start()
.inputStream.bufferedReader().readText().trim()
props == "1"
} catch (e: Exception) {
false
}
}
Pertanyaan yang Sering Diajukan
AVD berjalan di QEMU dan tidak dapat sepenuhnya meniru fitur perangkat keras: kamera nyata, NFC, Bluetooth. AVD ideal untuk pengujian UI, pemeriksaan siklus hidup, dan kompatibilitas dengan versi OS. Untuk pengujian kamera dan sensor yang akurat, diperlukan perangkat fisik.
Minimal 2–3 AVD: API Level terbaru untuk memeriksa fitur baru, minimum yang didukung (minSdk) untuk kompatibilitas, dan model perangkat populer (Pixel 8 atau Samsung Galaxy) untuk pengujian UI pada layar tertentu.
Penyebab utama: virtualisasi perangkat keras dinonaktifkan (WHPX, Hypervisor.Framework, KVM), RAM sedikit (kurang dari 2 GB), GPU Host dinonaktifkan. Aktifkan -gpu host dan tingkatkan memori menjadi 2–4 GB — ini akan mempercepat emulator 3–5 kali lipat.
Ya. Emulator dijalankan melalui emulator -avd Nama_AVD dari baris perintah. Untuk ini diperlukan Android SDK, Platform-Tools, dan System Image yang terinstal. AVD Manager juga tersedia sebagai utilitas konsol avdmanager.
Di AVD Manager, pilih Wipe Data — ini akan menghapus userdata.img dan mengembalikan emulator ke keadaan awal. Dari baris perintah: emulator -avd Nama -wipe-data. Snapshots tetap dipertahankan kecuali dihapus secara terpisah.
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