Memulai emulator dari command line

Android SDK menyertakan emulator perangkat Android, yaitu sebuah perangkat virtual yang berjalan di komputer Anda. Android Emulator memungkinkan Anda mengembangkan dan menguji aplikasi Android tanpa menggunakan perangkat fisik.

Halaman ini menjelaskan fitur-fitur command line yang dapat Anda gunakan dengan Android Emulator. Untuk mengetahui informasi tentang menggunakan UI Android Emulator, lihat Menjalankan aplikasi pada Android Emulator.

Mulai emulator

Gunakan perintah emulator untuk memulai emulator, sebagai alternatif untuk menjalankan project Anda atau memulainya melalui AVD Manager.

Berikut adalah sintaksis command line dasar untuk memulai perangkat virtual dari prompt terminal:

emulator -avd avd_name [ {-option [value]} … ]

Atau

emulator @avd_name [ {-option [value]} … ]

Misalnya, jika Anda meluncurkan emulator dari dalam Android Studio yang berjalan di Mac, command line defaultnya akan serupa dengan berikut ini:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

Perhatikan bahwa argumen -qt-hide-window -grpc-use-token -idle-grpc-timeout hanya digunakan untuk menjalankan jendela emulator dalam Android Studio. Jika ingin menjalankan emulator di jendelanya sendiri, Anda tidak boleh menggunakan parameter tambahan tersebut.

Anda dapat menentukan opsi startup saat memulai emulator, tetapi tidak setelah dimulai.

Untuk listingan nama AVD, masukkan perintah berikut:

emulator -list-avds

Gunakan opsi ini untuk menampilkan listingan nama AVD dari direktori utama Android Anda. Anda dapat mengganti direktori utama default ini dengan menetapkan variabel lingkungan ANDROID_SDK_HOME yang menentukan root direktori khusus pengguna tempat semua konfigurasi dan konten AVD disimpan.

Anda dapat menetapkan variabel lingkungan di jendela terminal sebelum meluncurkan perangkat virtual atau melalui setelan pengguna dalam sistem operasi. Misalnya, dalam file .bashrc Anda di Linux.

Untuk menghentikan Android Emulator, tutup jendela emulator.

Menginstal aplikasi

Selain menginstal aplikasi melalui Android Studio atau UI emulator, Anda dapat menginstal aplikasi di perangkat virtual menggunakan utilitas adb.

Agar dapat menggunakan adb untuk menginstal, menjalankan, dan menguji aplikasi Anda, ikuti langkah-langkah umum berikut:

  1. Bangun dan paketkan aplikasi Anda menjadi APK seperti yang dijelaskan dalam Membangun dan menjalankan aplikasi Anda.
  2. Mulai emulator dari command line seperti yang dijelaskan di bagian sebelumnya, menggunakan opsi startup mana pun yang diperlukan.
  3. Instal aplikasi menggunakan adb.
  4. Jalankan dan uji aplikasi Anda di emulator.
    Selagi emulator berjalan, Anda dapat menggunakan Emulator console untuk memberikan perintah sesuai kebutuhan.

Untuk meng-uninstal aplikasi, lakukan seperti yang biasa Anda lakukan di perangkat Android.

Perangkat virtual mempertahankan aplikasi dan data statusnya dalam partisi disk data pengguna meskipun perangkat dimulai ulang (userdata-qemu.img). Untuk menghapus data ini, mulai emulator dengan opsi -wipe-data atau hapus total data di AVD Manager. Untuk informasi selengkapnya tentang partisi data pengguna dan penyimpanan lainnya, lihat bagian berikut.

Catatan: Utilitas adb menganggap perangkat virtual sebagai perangkat fisik sebenarnya. Dengan demikian, Anda mungkin harus menggunakan tanda -d dengan beberapa perintah adb umum, seperti install. Tanda -d memungkinkan Anda menentukan perangkat terhubung mana yang akan digunakan sebagai target suatu perintah. Jika Anda tidak menentukan -d, emulator akan menargetkan perangkat pertama dalam listingan.

Memahami direktori dan file default

Emulator menggunakan file terkait, ketika sistem AVD dan direktori data adalah yang paling penting. Sebaiknya Anda memahami struktur dan file direktori emulator saat menentukan opsi command line, meskipun biasanya Anda tidak perlu mengubah direktori atau file default.

Android Emulator menggunakan hypervisor (QEMU).

Direktori sistem AVD

Direktori sistem berisi image sistem Android yang digunakan emulator untuk menyimulasikan sistem operasi. Direktori ini menyimpan file hanya baca khusus platform yang dibagikan oleh semua AVD dari jenis yang sama, termasuk API level, arsitektur CPU, dan varian Android. Lokasi defaultnya adalah sebagai berikut:

  • macOS dan Linux - ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Jendela - C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

Dalam hal ini:

  • apiLevel adalah API level numerik atau huruf untuk rilis pratinjau. Misalnya, android-V menunjukkan Android Pratinjau VanillaIceCream. Pada saat dirilis, level menjadi API level 35, yang ditunjukkan oleh android-35.
  • variant adalah nama yang berkaitan dengan fitur spesifik yang diimplementasikan oleh image sistem. Misalnya, google_apis atau android-wear.
  • arch adalah arsitektur CPU target. Misalnya, x86.

Gunakan opsi -sysdir untuk menentukan direktori sistem yang berbeda bagi AVD.

Emulator membaca file-file berikut dari direktori sistem:

Tabel 1. File direktori sistem yang dibaca oleh Android Emulator

File Deskripsi Opsi untuk menentukan file lain
kernel-qemu atau kernel-ranchu Image kernel biner untuk AVD. kernel-ranchu didasarkan pada Emulator QEMU. -kernel
ramdisk.img Image partisi booting. Image ini adalah subset system.img yang awalnya dimuat oleh kernel sebelum image sistem dipasang. Biasanya hanya berisi beberapa biner dan skrip inisialisasi. -ramdisk
system.img Versi awal image sistem yang bersifat hanya-baca. Secara spesifik, partisi yang berisi library sistem dan data yang terkait dengan varian dan API level. -system
userdata.img Versi awal partisi data, yang ditampilkan sebagai data/ dalam sistem yang diemulasi dan berisi semua data yang dapat ditulis untuk AVD. Emulator menggunakan file ini saat Anda membuat AVD baru atau menggunakan opsi ‑wipe-data. Untuk informasi selengkapnya, lihat deskripsi file userdata-qemu.img di bagian berikut. -initdata
-init-data

Direktori data AVD

Direktori data AVD, disebut juga direktori konten, spesifik untuk satu instance AVD dan berisi semua data yang dapat dimodifikasi untuk AVD tersebut.

Lokasi defaultnya adalah sebagai berikut, dengan name yang merupakan nama AVD:

  • macOS dan Linux - ~/.android/avd/name.avd/
  • Windows 10, dan yang lebih tinggi - C:\Users\user\.android\name.avd\

Gunakan opsi -datadir untuk menentukan direktori data AVD yang berbeda.

Tabel berikut mencantumkan file paling penting yang ada dalam direktori ini:

Tabel 2. File penting dalam direktori data AVD

File Deskripsi Opsi untuk menentukan file lain
userdata-qemu.img

Konten partisi data, yang ditampilkan sebagai data/ dalam sistem yang diemulasi. Saat Anda membuat AVD baru, atau saat menggunakan opsi -wipe-data untuk mereset AVD ke setelan default pabrik, emulator akan menyalin file userdata.img di direktori sistem untuk membuat file ini.

Setiap instance perangkat virtual menggunakan image data pengguna yang dapat ditulis untuk menyimpan data spesifik pengguna dan spesifik sesi. Misalnya, instance perangkat virtual menggunakan image untuk menyimpan data aplikasi terinstal, setelan, database, dan file untuk pengguna unik. Setiap pengguna memiliki direktori ANDROID_SDK_HOME berbeda yang menyimpan direktori data untuk AVD yang dibuat oleh pengguna tersebut. Setiap AVD memiliki satu file userdata-qemu.img.

-data
cache.img Image partisi cache, yang ditampilkan sebagai cache/ dalam sistem yang diemulasi. File ini kosong saat Anda pertama kali membuat AVD atau menggunakan opsi -wipe-data. File ini menyimpan file download sementara dan diisi oleh pengelola download dan terkadang oleh sistem. Misalnya, browser menggunakannya untuk meng-cache halaman web dan gambar yang didownload saat emulator berjalan. Saat Anda mematikan perangkat virtual, file tersebut dihapus. Anda dapat mempertahankan file tersebut menggunakan opsi -cache. -cache
sdcard.img

(Opsional) Image partisi kartu SD yang memungkinkan Anda menyimulasikan kartu SD pada perangkat virtual. Anda dapat membuat file image kartu SD dalam AVD Manager atau menggunakan alat mksdcard. File ini disimpan di komputer pengembangan dan harus dimuat saat perangkat dinyalakan.

Saat menentukan AVD di AVD Manager, Anda dapat memilih untuk menggunakan file kartu SD yang dikelola secara otomatis, atau file yang Anda buat dengan alat mksdcard. Anda dapat melihat file sdcard.img yang terkait dengan AVD di AVD Manager. Opsi -sdcard akan menggantikan file kartu SD yang ditentukan dalam AVD. Perhatikan bahwa opsi Kartu SD ini tidak akan berfungsi di Mac dengan Apple Silicon.

Anda dapat mencari, mengirim file ke, serta menyalin dan menghapus file dari kartu SD yang disimulasikan menggunakan UI emulator atau utilitas adb saat perangkat virtual sedang berjalan. Anda tidak dapat menghapus kartu SD yang disimulasikan dari perangkat virtual yang sedang berjalan.

Untuk menyalin file ke file kartu SD sebelum memuatnya, instal file image sebagai perangkat loop, lalu salin file-file tersebut. Atau gunakan utilitas seperti paket mtools untuk menyalin file secara langsung ke image.

Emulator memperlakukan file tersebut sebagai kumpulan byte sehingga format kartu SD tidak berpengaruh.

Opsi -wipe-data tidak memengaruhi file. Jika Anda ingin menghapus file, hapus file lalu buat ulang menggunakan AVD Manager atau alat mksdcard. Mengubah ukuran file juga akan menghapus file dan membuat file baru.

-sdcard

Mencantumkan direktori dan file yang digunakan oleh emulator

Anda dapat mengetahui lokasi file dengan dua cara:

  • Gunakan opsi -verbose atau -debug init saat Anda memulai emulator dari command line. Lihat outputnya.
  • Gunakan perintah emulator -help-option untuk mencantumkan direktori default. Contoh:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Opsi startup command line

Bagian ini mencantumkan opsi yang dapat Anda berikan pada command line saat memulai emulator.

Catatan: Android Emulator terus dikembangkan untuk meningkatkan keandalannya. Untuk melihat status tentang masalah yang dilaporkan terkait berbagai opsi command line, dan untuk melaporkan bug, lihat Android Issue Tracker.

Opsi yang biasa digunakan

Tabel berikut mencantumkan opsi startup command line yang mungkin sering Anda gunakan:

Tabel 3. Opsi command line yang biasa digunakan

Opsi command line Deskripsi
Quick Boot
-no-snapshot-load Melakukan cold boot, dan menyimpan status emulator saat keluar.
-no-snapshot-save Melakukan quick boot jika memungkinkan, tetapi tidak menyimpan status emulator saat keluar.
-no-snapshot Menonaktifkan fitur Quick Boot sepenuhnya dan tidak memuat atau menyimpan status emulator.
Hardware Perangkat
-camera-back mode
-camera-front mode
Menetapkan mode emulasi untuk kamera belakang atau depan. Tindakan ini akan menggantikan setelan kamera apa pun di AVD.

mode dapat berupa salah satu nilai berikut:

  • emulated - Emulator menyimulasikan kamera dalam software.
  • webcamn - Emulator menggunakan webcam yang terhubung ke komputer pengembangan Anda, yang ditentukan oleh angka. Untuk melihat daftar webcam, gunakan opsi -webcam-list. Misalnya, webcam0.
  • none - Menonaktifkan kamera di perangkat virtual.

Contoh:

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list Mencantumkan webcam di komputer pengembangan yang tersedia untuk emulasi. Sebagai contoh:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

Dalam contoh, webcam0 yang pertama adalah nama yang Anda gunakan pada command line. webcam0 yang kedua adalah nama yang digunakan oleh OS pada komputer pengembangan. Nama kedua bervariasi berdasarkan OS.

Mulai SDK Tools 25.2.4, nama AVD wajib diisi.

Disk image dan memori
-memory size

Menentukan ukuran RAM fisik, dari 1536 hingga 8192 MB. Contoh:

emulator @Pixel8_API_34 -memory 2048

Nilai ini mengganti setelan AVD.

-sdcard filepath Menentukan nama file dan jalur ke file image partisi kartu SD. Sebagai contoh:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

Jika file tidak ditemukan, emulator tetap diluncurkan, tetapi tanpa kartu SD. Perintah akan menampilkan peringatan Tidak Ada Image Kartu SD.

Jika Anda tidak menentukan opsi ini, defaultnya adalah sdcard.img dalam direktori data, kecuali AVD menetapkan lainnya. Untuk detail tentang kartu SD yang diemulasi, lihat direktori data AVD.

-wipe-data Menghapus data pengguna dan menyalin data dari file data awal. Opsi ini menghapus data untuk perangkat virtual dan mengembalikannya ke status yang sama dengan saat pertama kali ditentukan. Semua aplikasi yang diinstal dan setelan akan dihapus. Contoh:

emulator @Pixel8_API_34 -wipe-data

Secara default, file data pengguna adalah userdata-qemu.img dan file data awal adalah userdata.img. Kedua file ini berada di direktori data. Opsi -wipe-data tidak memengaruhi file sdcard.img. Untuk mengetahui informasi selengkapnya tentang data pengguna, lihat bagian Memahami direktori dan file default.

Debug
-debug tags Mengaktifkan atau menonaktifkan tampilan pesan debug untuk satu atau beberapa tag. Pisahkan banyak tag dengan spasi, koma, atau tanda kolom. Contoh:

$ emulator @Pixel8_API_34 -debug init,metrics

Untuk menonaktifkan tag, tambahkan tanda hubung (-) di depannya. Misalnya, opsi berikut menampilkan semua pesan debug, kecuali pesan yang terkait dengan soket dan metrik jaringan:

-debug all,-socket,-metrics

Untuk melihat daftar tag dan deskripsi, gunakan opsi -help-debug-tags. Contoh:

emulator -help-debug-tags

Anda dapat menentukan tag debug default dalam variabel lingkungan ANDROID_VERBOSE. Tentukan tag yang ingin Anda gunakan dalam daftar yang dipisahkan koma. Berikut adalah contoh yang menunjukkan cara menentukan tag socket dan gles:

ANDROID_VERBOSE=socket,gles

Ini setara dengan menggunakan:

-debug-socket -debug-gles

atau

-debug socket,gles

-debug-tag
-debug-no-tag
Mengaktifkan jenis pesan debug tertentu. Gunakan formulir no untuk menonaktifkan jenis pesan debug. Contoh:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

Untuk melihat daftar tag, gunakan perintah emulator -help-debug-tags.

-logcat logtags Mengaktifkan tampilan pesan Logcat untuk satu atau beberapa tag dan menuliskannya ke jendela terminal. Misalnya, perintah berikut memungkinkan pesan error dari semua komponen:

emulator @Pixel8_API_34 -logcat *:e

logtags menggunakan format yang sama dengan perintah adb logcat logtags. Masukkan adb logcat -help untuk informasi selengkapnya. Opsi ini merupakan daftar filter log dari format componentName:logLevel yang dipisahkan dengan spasi atau koma. componentName adalah tanda bintang karakter pengganti (* ) atau nama komponen, seperti ActivityManager, SystemServer, InputManager, atau WindowManager.

logLevel adalah salah satu nilai berikut:

  • v - verbose
  • d - debug
  • i - informative
  • w - warning log level
  • e - error
  • s - silent

Contoh berikut menampilkan pesan komponen GSM di level log informatif:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

Jika Anda tidak memberikan opsi -logcat pada command line, emulator akan mencari variabel lingkungan ANDROID_LOG_TAGS. Jika ANDROID_LOG_TAGS ditentukan dengan nilai logtags yang valid dan tidak kosong, emulator akan menggunakan nilainya untuk mengaktifkan output Logcat ke terminal secara default. Anda juga dapat mengalihkan pesan log yang sama, atau lainnya, ke terminal melalui adb.

Untuk informasi selengkapnya tentang Logcat dan adb, lihat Alat command line Logcat, Melihat dan menulis log dengan Logcat, Log, dan Buat perintah adb.

-show-kernel Menampilkan pesan debug kernel di jendela terminal. Contoh:

emulator @Pixel8_API_34 -show-kernel

Salah satu kegunaan opsi ini adalah untuk memeriksa apakah proses booting berjalan dengan benar.

-verbose Mencetak pesan inisialisasi emulator ke jendela terminal. Sebagai contoh:

emulator @Pixel8_API_34 -verbose

Opsi ini menampilkan file dan setelan mana yang sebenarnya dipilih saat memulai perangkat virtual yang ditentukan dalam AVD. Opsi ini sama dengan menentukan -debug-init.

Jaringan
-dns-server servers Menggunakan server DNS yang ditentukan. servers adalah daftar yang dipisahkan koma untuk maksimum empat nama server DNS atau alamat IP. Sebagai contoh:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

Secara default, emulator mencoba mendeteksi server DNS yang Anda gunakan dan menyiapkan alias khusus di jaringan firewall teremulasi untuk memungkinkan sistem Android terhubung langsung ke server tersebut. Gunakan opsi -dns-server untuk menentukan daftar server DNS yang berbeda.

-http-proxy proxy Membuat semua koneksi TCP melalui proxy HTTP/HTTPS yang ditetapkan. Jika emulator Anda harus mengakses internet melalui server proxy, Anda dapat menggunakan opsi ini atau variabel lingkungan http_proxy untuk menyiapkan pengalihan yang sesuai. Contoh:

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy dapat berupa salah satu alamat berikut:

http://server:port
http://username:password@server:port

Awalan http:// dapat dihilangkan.

Jika opsi ini tidak tersedia, emulator akan mencari variabel lingkungan http_proxy dan otomatis menggunakan nilai yang cocok dengan format proxy. Untuk mengetahui informasi selengkapnya, baca Menggunakan emulator dengan proxy.

-netdelay delay

Menetapkan emulasi latensi jaringan ke salah satu nilai delay berikut ke dalam milidetik:

  • gsm - GSM/CSD (min 150, maks 550).
  • hscsd - HSCSD (min 80, maks 400).
  • gprs - GPRS (min 35, maks 200).
  • edge - EDGE/EGPRS (min 80, maks 400).
  • umts - UMTS/3G (min 35, maks 200).
  • hsdpa - HSDPA (min 0, maks 0).
  • lte - LTE (min 0, maks 0).
  • evdo - EVDO (min 0, maks 0).
  • none - Tanpa latensi, default (min 0, maks 0).
  • num - Menentukan latensi yang tepat.
  • min:max - Menentukan latensi minimum dan maksimum individual.

Contoh:

emulator @Pixel8_API_34 -netdelay gsm

Emulator mendukung throttling jaringan serta latensi koneksi yang lebih tinggi. Anda dapat menentukannya melalui konfigurasi skin, atau dengan opsi ‑netspeed dan -netdelay.

-netfast Menonaktifkan throttling jaringan. Contoh:

emulator @Pixel8_API_34 -netfast

Opsi ini sama dengan menentukan -netspeed full -netdelay none. Nilai tersebut adalah default untuk opsi ini.

-netspeed speed

Menetapkan emulasi kecepatan jaringan. Tentukan kecepatan upload dan download maksimum jaringan dengan salah satu nilai speed berikut dalam kbps:

  • gsm - GSM/CSD (upload: 14.4, download: 14.4).
  • hscsd - HSCSD (upload: 14.4, download: 57.6).
  • gprs - GPRS (upload: 28.8, download: 57.6).
  • edge - EDGE/EGPRS (upload: 473.6, download: 473.6).
  • umts - UMTS/3G (upload: 384.0, download: 384.0).
  • hsdpa - HSDPA (upload: 5760.0, download: 13,980.0).
  • lte - LTE (upload: 58,000, download: 173,000).
  • evdo - EVDO (upload: 75,000, download: 280,000).
  • full - Tanpa batas, default (upload: 0.0, download: 0.0).
  • num - Menentukan kecepatan upload dan download.
  • up:down - Menentukan kecepatan naik dan turun individual.

Contoh:

emulator @Pixel8_API_34 -netspeed edge

Emulator mendukung throttling jaringan serta latensi koneksi yang lebih tinggi. Anda dapat menentukannya melalui konfigurasi skin atau dengan opsi ‑netspeed dan -netdelay.

-port port Menentukan nomor port TCP yang digunakan untuk konsol dan adb. Contoh:

emulator @Pixel8_API_34 -port 5556

Nilai defaultnya adalah 5554 untuk instance perangkat virtual pertama yang berjalan pada mesin Anda. Perangkat virtual biasanya menempati sepasang port yang berdekatan: port konsol dan port adb. Konsol perangkat virtual pertama yang berjalan pada mesin tertentu menggunakan port konsol 5554 dan port adb 5555. Instance berikutnya menggunakan nomor port yang meningkat dua angka. Misalnya, 5556/5557, 5558/5559, dan sebagainya. Rentangnya adalah 5554 hingga 5682, yang memungkinkan 64 perangkat virtual serentak.

Penetapan port biasanya sama dengan penetapan -ports port,{port + 1}. {port + 1} harus tersedia gratis dan dicadangkan untuk adb. Jika salah satu port konsol atau adb sudah digunakan, emulator tidak akan dimulai.

Opsi ‑port melaporkan port dan nomor seri mana yang digunakan perangkat virtual, dan memberikan peringatan jika ada masalah dengan nilai yang Anda berikan. Pada UI emulator, Anda dapat melihat nomor port konsol dalam judul jendela dan melihat nomor port adb dengan memilih Help > About.

Perlu diketahui bahwa jika nilai port tidak genap dan berada dalam rentang 5554 hingga 5584, perangkat virtual akan dimulai, tetapi tidak terlihat saat Anda menggunakan perintah adb devices jika adb server dimulai setelah emulator. Karena alasan ini, kami merekomendasikan penggunaan nomor port konsol genap.

-ports
console-port,adb-port
Menetapkan port TCP yang digunakan untuk konsol dan adb. Contoh:

emulator @Pixel8_API_34 -ports 5556,5559

Rentang port yang valid adalah 5554 hingga 5682, yang memungkinkan 64 perangkat virtual serentak. Opsi -ports melaporkan port dan nomor seri mana yang digunakan instance emulator, dan memberi tahu apabila ada masalah dengan nilai yang Anda berikan.

Sebaiknya gunakan opsi -port jika memungkinkan. Opsi -ports tersedia untuk konfigurasi jaringan yang memerlukan setelan khusus.

Untuk informasi selengkapnya tentang menyetel port konsol dan adb, lihat opsi -port.

-tcpdump filepath Merekam paket jaringan dan menyimpannya dalam file. Contoh:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

Gunakan opsi ini untuk mulai merekam semua paket jaringan yang dikirim melalui LAN Ethernet virtual emulator. Setelah itu, Anda dapat menggunakan alat seperti Wireshark untuk menganalisis traffic.

Perhatikan bahwa opsi ini merekam semua paket ethernet dan tidak terbatas pada koneksi TCP.

Sistem
-accel mode Mengonfigurasi akselerasi VM emulator. Contoh:

emulator @Pixel8_API_34 -accel auto

Emulasi yang dipercepat hanya berfungsi untuk image sistem x86 dan x86_64. Di Linux, emulasi tersebut bergantung pada KVM. Di Windows dan Mac, emulasi ini mengandalkan driver Intel CPU dan Intel HAXM. Opsi ini diabaikan jika Anda tidak mengemulasi perangkat x86 atau x86_64.

Nilai yang valid untuk mode adalah:

  • auto - Menentukan secara otomatis apakah akselerasi didukung dan menggunakannya jika memungkinkan (default).
  • off - Menonaktifkan akselerasi sepenuhnya, yang terutama berguna untuk proses debug.
  • on - Memaksa akselerasi. Jika KVM atau HAXM tidak diinstal atau tidak dapat digunakan, emulator tidak akan dimulai dan akan mencetak pesan error.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akselerasi hardware untuk Android Emulator.

-accel-check Memeriksa apakah hypervisor yang diperlukan untuk akselerasi VM emulator sudah diinstal (HAXM atau KVM). Contoh:

emulator -accel-check

Untuk mengetahui informasi selengkapnya, lihat Memeriksa apakah hypervisor terinstal.

-engine engine

Menentukan mesin emulator:

  • auto - Otomatis memilih mesin (default).
  • classic - Menggunakan mesin QEMU 1 lama (tidak digunakan lagi).
  • qemu2 - Menggunakan mesin QEMU 2 yang lebih baru.

Contoh:

emulator @Pixel8_API_34 -engine auto

Deteksi otomatis akan memilih nilai yang memberikan performa terbaik saat mengemulasi AVD tertentu. Opsi -engine hanya boleh digunakan untuk keperluan proses debug dan perbandingan.

-gpu mode Memilih mode emulasi GPU. Contoh:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Untuk informasi selengkapnya, lihat Mengonfigurasi akselerasi grafis.

-no-accel Menonaktifkan akselerasi VM emulator saat menggunakan image sistem x86 atau x86_64. Opsi ini berguna hanya untuk proses debug dan sama seperti menetapkan -accel off. Contoh:

emulator @Pixel8_API_34 -no-accel

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akselerasi hardware untuk Android Emulator.

-nojni
-no-jni
Menonaktifkan pemeriksaan Java Native Interface (JNI) yang diperluas pada runtime Android Dalvik atau ART. Contoh:

emulator @Pixel8_API_34 -nojni

Saat Anda memulai perangkat virtual, pemeriksaan JNI yang diperluas diaktifkan secara default. Untuk informasi selengkapnya, lihat tips JNI.

-selinux {disabled|permissive} Menetapkan modul keamanan Security-Enhanced Linux (SELinux) ke mode disabled atau permissive di sistem operasi Linux. Contoh:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

Secara default, SELinux berada dalam mode enforcing, yang berarti kebijakan keamanan diterapkan. Mode permissive memuat kebijakan SELinux, tetapi tidak menerapkannya. Opsi ini hanya mencatat pelanggaran kebijakan. Mode disabled menonaktifkan dukungan kernel untuk SELinux.

-timezone timezone

Menetapkan zona waktu untuk perangkat virtual ke timezone, bukan zona waktu host. Sebagai contoh:

emulator @Pixel8_API_34 -timezone Europe/Paris

Secara default, emulator menggunakan zona waktu komputer pengembangan Anda. Gunakan opsi ini untuk menentukan zona waktu yang lain atau jika deteksi otomatis tidak berfungsi dengan benar. Nilai timezone harus dalam format zoneinfo, yaitu area/location atau area/subarea/location. Contoh:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

Zona waktu yang ditentukan harus ada dalam database zoneinfo.

-version Menampilkan nomor versi emulator. Contoh:

emulator @Pixel8_API_34 -version

Atau

emulator -version
UI
-no-boot-anim Menonaktifkan animasi boot selama startup emulator untuk mempercepat proses booting. Contoh:

emulator @Pixel8_API_34 -no-boot-anim

Pada komputer yang lebih lambat, opsi ini dapat mempercepat proses booting secara signifikan.

-screen mode Menetapkan mode layar sentuh yang diemulasi. Contoh:

emulator @Pixel8_API_34 -screen no-touch

mode dapat berupa salah satu nilai berikut:

  • touch - Mengemulasi layar sentuh (default).
  • multi-touch - Mengemulasi layar multi-sentuh.
  • no-touch - Menonaktifkan emulasi layar sentuh dan multi-sentuh.

Opsi lanjutan

Opsi startup command line dalam tabel berikut tersedia, tetapi tidak biasa digunakan oleh developer aplikasi standar.

Dalam deskripsi, direktori kerja adalah direktori saat ini di terminal tempat Anda memasukkan perintah. Untuk mengetahui informasi tentang direktori sistem AVD dan direktori data serta file yang tersimpan di dalamnya, lihat bagian tentang direktori dan file default.

Beberapa opsi berikut sesuai untuk developer aplikasi eksternal, dan sebagian di antaranya digunakan terutama oleh developer platform. Developer aplikasi membuat aplikasi Android dan menjalankannya pada AVD tertentu. Developer platform bekerja di sistem Android dan menjalankannya di dalam emulator tanpa AVD yang dibuat sebelumnya.

Tabel 4. Opsi command line lanjutan

Opsi lanjutan Deskripsi singkat
-bootchart timeout

Mengaktifkan bootcharting, dengan waktu tunggu dalam detik. Beberapa image sistem Android memiliki sistem init yang dimodifikasi yang mengintegrasikan fasilitas bootcharting. Anda dapat meneruskan waktu tunggu bootcharting ke sistem dengan opsi ini. Jika sistem init Anda tidak memiliki bootcharting yang diaktifkan, opsi ini tidak akan melakukan apa pun. Opsi ini berguna terutama untuk developer platform, bukan developer aplikasi eksternal.

Contoh:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

Menentukan file image partisi cache. Berikan nama file, dan jalur absolut atau jalur yang terkait dengan direktori data untuk menyiapkan file cache persisten. Jika file ini tidak ada, emulator akan membuatnya sebagai file kosong.

Contoh:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

Jika Anda tidak menggunakan opsi ini, defaultnya adalah file sementara yang bernama cache.img. Untuk informasi selengkapnya, lihat Direktori data AVD.

-cache-size size

Menentukan ukuran partisi cache dalam MB.

Contoh:

emulator @Pixel8_API_34 -cache-size 1000

Jika Anda tidak menentukan opsi ini, defaultnya adalah 66 MB. Biasanya, sebagian besar developer aplikasi tidak memerlukan opsi ini, kecuali mereka perlu mendownload file yang berukuran sangat besar dan melebihi cache default. Untuk informasi selengkapnya tentang file cache, lihat direktori data AVD.

-data filepath

Menentukan file image partisi data pengguna. Berikan nama file dan jalur absolut atau jalur yang terkait dengan direktori kerja untuk menyiapkan file data pengguna persisten. Jika file tidak ada, emulator akan membuat image dari file userdata.img default, menyimpannya dalam nama file yang Anda tentukan, dan menyimpan data pengguna ke dalamnya saat perangkat dimatikan.

Contoh:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

Jika Anda tidak menggunakan opsi ini, defaultnya adalah file yang bernama userdata-qemu.img. Untuk informasi selengkapnya tentang file data pengguna, lihat Direktori data AVD.

-datadir dir

Menentukan direktori data menggunakan jalur absolut. Untuk informasi selengkapnya, lihat Direktori data AVD.

Contoh:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

Menggunakan emulator 32 bit pada platform 64 bit. Kadang-kadang, opsi ini berguna untuk pengujian atau proses debug. Misalnya, ada masalah saat emulator terkadang tidak berjalan pada Windows versi 64-bit, tetapi berjalan pada versi 32-bit. Opsi ini berguna untuk melakukan perbandingan guna men-debug masalah. Berikut contohnya:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

Mendapatkan bantuan tentang disk image. Opsi ini memberikan informasi yang relevan bagi developer aplikasi dan platform. Contoh:

emulator -help-disk-images
-help-char-devices

Mendapatkan bantuan tentang spesifikasi device karakter. Parameter device diperlukan oleh beberapa opsi emulator. Contoh:

emulator -help-char-devices
-help-sdk-images

Mendapatkan bantuan tentang disk image yang relevan bagi developer aplikasi. Opsi ini mendapatkan informasi tentang lokasi file gambar untuk AVD yang dibuat dengan SDK tools. Contoh:

emulator -help-sdk-images
-help-build-images

Mendapatkan bantuan tentang disk image yang relevan bagi developer platform. Contoh:

emulator -help-build-images
-initdata filepath
-init-data filepath

Menentukan versi awal partisi data. Setelah menghapus total data pengguna, emulator akan menyalin konten file yang ditentukan ke data pengguna (secara default, file userdata-qemu.img), bukan menggunakan file userdata.img default sebagai versi awal. Berikan nama file, serta jalur absolut atau jalur yang terkait dengan direktori tugas.

Contoh:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

Jika Anda tidak menentukan jalur, file akan ditempatkan di direktori sistem. Untuk informasi selengkapnya, lihat Direktori sistem AVD.

-kernel filepath

Menggunakan kernel khusus yang diemulasi. Jika Anda tidak menentukan jalur, emulator akan mencarinya di direktori sistem.

Gunakan opsi ‑show‑kernel untuk melihat pesan debug kernel.

Contoh:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

Jika Anda tidak menentukan opsi ini, defaultnya adalah kernel-ranchu. Untuk informasi selengkapnya, lihat Direktori sistem AVD.

-noaudio
-no-audio

Menonaktifkan dukungan audio untuk perangkat virtual ini. Beberapa komputer Linux dan Windows memiliki driver audio bermasalah yang menyebabkan gejala berbeda-beda, seperti mencegah dimulainya emulator. Dalam hal ini, gunakan opsi ini untuk mengatasi masalah tersebut. Atau, Anda dapat menggunakan variabel lingkungan QEMU_AUDIO_DRV untuk mengubah backend audio.

Contoh:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

Memulai emulator tanpa partisi cache. Jika Anda tidak menggunakan opsi ini, defaultnya adalah file sementara yang bernama cache.img. Opsi ini hanya ditujukan bagi developer platform. Untuk informasi selengkapnya, lihat Direktori data AVD.

Contoh:

emulator @Pixel8_API_34 -nocache
-no-snapshot

Menghambat operasi pemuatan dan penyimpanan otomatis, yang menyebabkan emulator menjalankan rangkaian booting lengkap dan kehilangan statusnya saat ditutup. Opsi ini menggantikan opsi -snapshot.

Contoh:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

Mencegah emulator memuat status AVD dari penyimpanan snapshot. Menjalankan booting penuh.

Contoh:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

Mencegah emulator menyimpan status AVD ke penyimpanan snapshot saat keluar, yang berarti semua perubahan akan hilang.

Contoh:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

Tidak mencoba memperbaiki waktu jam AVD dengan segera begitu snapshot dipulihkan. Opsi ini dapat berguna selama pengujian karena menghindari lompatan waktu secara mendadak. Pembaruan waktu tetap dikirimkan ke AVD setiap 15 detik.

Contoh:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

Memulai emulator tanpa memasang file untuk menyimpan atau memuat snapshot status, memaksa booting penuh dan menonaktifkan fungsionalitas snapshot status. Opsi ini menggantikan opsi -snapstorage dan -snapshot.

Contoh:

emulator @Pixel8_API_34 -no-snapstorage
-no-window

Menonaktifkan tampilan jendela grafis pada emulator. Opsi ini berguna saat menjalankan emulator pada server yang tidak memiliki tampilan. Anda dapat mengakses emulator melalui adb atau konsol. Contoh:

emulator @Pixel8_API_34 -no-window
-partition-size size

Menentukan ukuran partisi data sistem dalam MB. Contoh:

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

Menetapkan properti sistem Android di emulator saat melakukan booting. name harus berupa nama properti yang diberi label sebagai qemu_prop maksimal 32 karakter, tanpa spasi, dan value harus berupa string maksimal 92 karakter. Sebagai contoh, lihat file property_contexts. Anda dapat menentukan beberapa opsi ‑prop pada satu command line. Opsi ini dapat berguna untuk proses debug. Contoh:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args Meneruskan argumen ke software emulator QEMU. Jika menggunakan opsi ini, pastikan itu menjadi opsi terakhir yang ditentukan, karena semua opsi setelahnya akan ditafsirkan sebagai opsi spesifik QEMU. Ini adalah opsi lanjutan dan sebaiknya hanya digunakan oleh developer yang sangat memahami emulasi QEMU dan Android.
-qemu -h

Menampilkan bantuan -qemu. Contoh:

emulator -qemu -h
-ramdisk filepath

Menentukan boot image ramdisk. Tentukan nama file, dan jalur absolut atau jalur yang terkait dengan direktori tugas.

Contoh:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

Jika Anda tidak menggunakan opsi ini, defaultnya adalah file ramdisk.img dalam direktori sistem. Untuk informasi selengkapnya, lihat Direktori sistem AVD.

-report-console socket

Melaporkan port konsol ke pihak ketiga jarak jauh sebelum memulai emulasi. Ini dapat berguna untuk skrip pengujian otomatis. socket harus menggunakan salah satu format berikut:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Untuk mengetahui informasi selengkapnya, gunakan opsi -help-report-console seperti yang dijelaskan di bagian tentang bantuan untuk opsi tertentu.

-shell

Membuat konsol shell root pada terminal saat ini. Opsi ini berbeda dengan perintah adb shell dalam hal berikut:

  • Opsi ini membuat shell root yang memungkinkan Anda memodifikasi banyak bagian sistem.
  • Opsi ini berfungsi meskipun adb daemon dalam sistem yang diemulasikan rusak.
  • Tekan Control+C (atau Command-C, pada macOS) untuk menghentikan emulator, bukan shell.

Contoh:

emulator @Pixel8_API_34 -shell
-snapshot name

Menentukan nama snapshot dalam file penyimpanan snapshot untuk operasi mulai dan simpan otomatis.

Bukannya mengeksekusi rangkaian boot lengkap, emulator dapat melanjutkan eksekusi dari snapshot status yang lebih awal, yang biasanya jauh lebih cepat. Jika Anda menentukan opsi ini, emulator akan memuat snapshot untuk nama tersebut dari image snapshot dan menyimpannya kembali dengan nama yang sama saat keluar.

Jika Anda tidak menentukan opsi ini, defaultnya adalah rangkaian boot lengkap. Jika snapshot yang ditentukan tidak ada, emulator akan menjalankan urutan booting lengkap, dan melakukan operasi simpan.

Lihat opsi -snapstorage untuk mendapatkan informasi tentang menentukan file penyimpanan snapshot dan file default.

emulator @Pixel8_API_34 -snapshot snapshot2

Ingat bahwa dalam proses pemuatan snapshot, semua konten sistem, data pengguna, dan image kartu SD akan ditimpa dengan konten yang tersimpan saat snapshot dibuat. Kecuali Anda menyimpan informasi ini dalam snapshot lain, perubahan apa pun sejak saat itu akan hilang.

Anda juga dapat membuat snapshot dari konsol emulator menggunakan perintah avd snapshot save name. Untuk mengetahui informasi selengkapnya, baca Mengirim perintah Konsol emulator.

-snapshot-list

Menampilkan daftar snapshot yang tersedia. Perintah ini menampilkan tabel snapshot yang disimpan dalam file penyimpanan snapshot dan digunakan untuk memulai emulator, lalu keluar. Jika Anda juga menentukan -snapstorage file, perintah ini akan menampilkan tabel snapshot yang disimpan dalam file.

Contoh:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Anda dapat menggunakan nilai kolom TAG dan ID dalam output sebagai argumen untuk opsi -snapshot.

-snapstorage filepath

Menentukan file repositori yang berisi semua snapshot status. Semua snapshot yang dibuat selama eksekusi disimpan dalam file ini. Hanya snapshot dalam file ini yang dapat dipulihkan selama emulator berjalan.

Contoh:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Jika Anda tidak menentukan opsi ini, defaultnya adalah snapshots.img dalam direktori data. Jika file yang ditentukan tidak ada, emulator akan dimulai, tetapi tidak mendukung operasi penyimpanan atau pemuatan snapshot status.

-sysdir dir

Menentukan direktori sistem menggunakan jalur absolut. Untuk mengetahui informasi selengkapnya, lihat Direktori sistem AVD. Contoh:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Menentukan file sistem awal. Berikan nama file serta jalur absolut atau jalur yang terkait dengan direktori tugas.

Contoh:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

Jika Anda tidak menggunakan opsi ini, defaultnya adalah file system.img dalam direktori sistem. Untuk informasi selengkapnya, lihat Direktori sistem AVD.

-use-system-libs

Di Linux, gunakan sistem libstdc++, bukan versi yang dipaketkan dengan sistem emulator. Gunakan opsi ini hanya jika emulator tidak dapat dimulai secara normal, dan perhatikan bahwa emulator tidak selalu berfungsi. Atau, tetapkan variabel lingkungan ANDROID_EMULATOR_USE_SYSTEM_LIBS ke 1.

Contoh:

me-linux$ emulator @Pixel8_API_34 -use-system-libs
-writable-system

Gunakan opsi ini untuk mendapatkan image sistem yang dapat ditulisi selama sesi emulasi. Untuk melakukannya:

  1. Mulai perangkat virtual dengan opsi -writable-system.
  2. Masukkan perintah adb remount dari terminal perintah untuk memberi tahu emulator agar memasang ulang system/ sebagai baca/tulis. Secara default, atribut ini dipasang sebagai hanya baca.

Menggunakan tanda ini akan membuat salinan sementara image sistem yang berukuran sangat besar, hingga beberapa ratus MB, tetapi akan dihancurkan saat emulator keluar.

Opsi yang tidak digunakan lagi

Opsi command line berikut tidak digunakan lagi:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Mendapatkan bantuan tentang opsi command line

Bagian ini menjelaskan cara mendapatkan bantuan tentang opsi command line. Bagian ini memberikan informasi yang lebih mendalam tentang opsi command line emulator yang biasa digunakan yang tersedia saat Anda memulai emulator.

Mencantumkan semua opsi emulator

Untuk mencetak daftar semua opsi emulator, termasuk deskripsi singkat, masukkan perintah berikut:

emulator -help

Mendapatkan bantuan terperinci untuk opsi tertentu

Untuk mencetak bantuan untuk opsi startup tertentu, masukkan perintah berikut:

emulator -help-option

Contoh:

emulator -help-netspeed

Bantuan ini lebih mendetail daripada deskripsi yang diberikan oleh opsi -help.

Mendapatkan bantuan terperinci untuk semua opsi

Untuk mendapatkan bantuan terperinci untuk semua opsi emulator, masukkan perintah berikut:

emulator -help-all

Mencantumkan variabel lingkungan emulator

Untuk mendapatkan daftar variabel lingkungan emulator, masukkan perintah berikut:

emulator -help-environment

Anda dapat menetapkan variabel lingkungan di jendela terminal sebelum meluncurkan perangkat virtual, atau menetapkannya melalui setelan pengguna di sistem operasi. Misalnya, dalam file .bashrc di Linux.

Mencantumkan tag debug

Untuk menampilkan daftar tag untuk opsi -debug, masukkan perintah berikut:

emulator -help-debug-tags

Opsi -debug memungkinkan Anda mengaktifkan atau menonaktifkan pesan debug dari komponen emulator spesifik, seperti yang ditentukan oleh tag.