Mengirim perintah konsol emulator

Setiap perangkat virtual yang berjalan menyediakan konsol yang memungkinkan Anda untuk meminta dan mengontrol lingkungan perangkat yang diemulasikan. Misalnya, Anda dapat menggunakan konsol untuk mengelola pengalihan port, karakteristik jaringan, dan peristiwa telepon saat aplikasi Anda berjalan di emulator.

Perintah berikut ini mewajibkan Anda sudah menjalankan emulator. Untuk mengetahui informasi selengkapnya tentang menjalankan emulator, lihat Menjalankan aplikasi di Android Emulator dan Memulai emulator dari command line.

Memulai dan menghentikan sesi konsol

Untuk mengakses konsol dan memasukkan perintah dari jendela terminal, gunakan telnet agar terhubung ke port konsol dan berikan token autentikasi Anda. Setiap kali konsol menampilkan OK, artinya konsol siap menerima perintah. Tidak ada perintah umum.

Agar terhubung ke konsol perangkat virtual yang berjalan:

  1. Buka jendela terminal dan masukkan perintah berikut:
  2. telnet localhost console-port

    Judul jendela emulator mencantumkan nomor port konsol saat berjalan di jendela terpisah, tetapi tidak saat berjalan di jendela alat. Misalnya, judul jendela untuk emulator yang menggunakan port konsol 5554 bisa menjadi Pixel8_API_34:5554. Selain itu, perintah adb devices mencetak daftar perangkat virtual yang berjalan beserta nomor port konsolnya. Untuk mengetahui informasi selengkapnya, lihat Kueri untuk perangkat.

    Catatan: Emulator akan memproses koneksi pada port 5554 hingga 5585 dan menerima koneksi hanya dari localhost.

  3. Setelah konsol menampilkan OK, masukkan perintah auth auth_token.
  4. Sebelum Anda dapat memasukkan perintah konsol, konsol emulator memerlukan autentikasi. auth_token harus cocok dengan isi file .emulator_console_auth_token di direktori beranda Anda.

    Jika file tersebut tidak ada, perintah telnet localhost console-port akan membuat file yang berisi token autentikasi yang dibuat secara acak. Untuk menonaktifkan autentikasi, hapus token dari file .emulator_console_auth_token atau buat file kosong jika tidak ada.

  5. Setelah Anda terhubung ke konsol, masukkan perintah konsol.
  6. Masukkan help, help command, atau help-verbose untuk melihat daftar perintah konsol dan mempelajari perintah khusus.

  7. Untuk keluar dari sesi konsol, masukkan quit atau exit.

Berikut ini adalah contoh sesi:

$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
    help|h|?         Prints a list of commands
    help-verbose     Prints a list of commands with descriptions
    ping             Checks if the emulator is alive
    automation       Manages emulator automation
    event            Simulates hardware events
    geo              Geo-location commands
    gsm              GSM related commands
    cdma             CDMA related commands
    crash            Crashes the emulator instance
    crash-on-exit    Simulates crash on exit for the emulator instance
    kill             Terminates the emulator instance
    restart          Restarts the emulator instance
    network          Manages network settings
    power            Power related commands
    quit|exit        Quits control session
    redir            Manages port redirections
    sms              SMS related commands
    avd              Controls virtual device execution
    qemu             QEMU-specific commands
    sensor           Manages emulator sensors
    physics          Manages physical model
    finger           Manages emulator finger print
    debug            Controls the emulator debug output tags
    rotate           Rotates the screen clockwise by 90 degrees
    screenrecord     Records the emulator's display
    fold             Folds the device
    unfold           Unfolds the device
    multidisplay     Configures the multi-display
    nodraw           turn on/off NoDraw mode. (experimental)
    resize-display   resize the display resolution to the preset size
    virtualscene-image  customize virtualscene image for virtulscene camera
    proxy            manage network proxy server settings
    phonenumber      set phone number for the device


try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.

Referensi perintah emulator

Tabel berikut mendeskripsikan perintah konsol emulator beserta parameter dan nilainya:

Tabel 1. Perintah konsol emulator

Perintah umum Deskripsi
avd {stop|start|status|name} Meminta, mengontrol, dan mengelola perangkat virtual, sebagai berikut:
  • stop: Menghentikan eksekusi perangkat.
  • start: Memulai eksekusi perangkat.
  • status: Meminta status perangkat virtual yang dapat berupa running atau stopped.
  • name: Meminta nama perangkat virtual.
avd snapshot {list|save name|load name|delete name} Menyimpan dan memulihkan status perangkat dalam snapshot, sebagai berikut:
  • list: Mencantumkan semua snapshot yang disimpan.
  • save name: Menyimpan snapshot sebagai name.
  • load name: Memuat snapshot yang bernama.
  • delete name: Menghapus snapshot yang bernama.

Contoh berikut menyimpan snapshot dengan nama firstactivitysnapshot.

avd snapshot save firstactivitysnapshot
fold Melipat perangkat untuk menampilkan konfigurasi dengan layar lebih kecil jika perangkat dapat dilipat dan saat ini sedang terbuka.
unfold Membuka lipatan perangkat untuk menampilkan konfigurasi dengan layar yang lebih besar jika perangkat dapat dilipat dan saat ini sedang terlipat.
kill Menghentikan perangkat virtual.
ping Memeriksa apakah perangkat virtual sedang berjalan.
rotate Memutar AVD berlawanan arah jarum jam dalam kelipatan 45 derajat.
Menghentikan emulator Deskripsi
crash Menghentikan emulator selama menjalankan aplikasi.
crash-on-exit Menghentikan emulator saat aplikasi ditutup.
Tag debug Deskripsi
debug tags ...

Mengaktifkan atau menonaktifkan pesan debug dari bagian emulator tertentu. Parameter tags harus berupa nilai dari daftar tag debug yang muncul saat Anda mengeksekusi emulator -help-debug-tags. Untuk mengetahui informasi selengkapnya tentang opsi -help-debug-tags, lihat tabel opsi yang umum digunakan.

Contoh berikut ini mengaktifkan tag radio:

debug radio
Pengalihan port Deskripsi
redir list Mencantumkan pengalihan port saat ini.
redir add protocol:host-port:guest-port Menambahkan pengalihan port baru sebagai berikut:
  • protocol: Harus tcp atau udp.
  • host-port: Nomor port yang harus dibuka pada host.
  • guest-port: Nomor port untuk merutekan data pada emulator.
redir del protocol:host-port Menghapus pengalihan port.
  • protocol: Harus tcp atau udp.
  • host-port: Nomor port yang harus dibuka pada host.
Lokasi geografis Deskripsi

Menyetel lokasi geografis yang dilaporkan ke aplikasi yang berjalan dalam emulator dengan mengirimkan perbaikan GPS ke emulator.

Anda dapat langsung memberikan salah satu perintah geo berikut setelah perangkat virtual berjalan. Emulator menetapkan lokasi yang Anda masukkan dengan membuat penyedia lokasi palsu. Penyedia ini merespons pemroses lokasi yang ditetapkan oleh aplikasi dan juga menyediakan lokasi ke LocationManager. Aplikasi apa pun dapat meminta pengelola lokasi untuk mendapatkan perbaikan GPS terkini untuk perangkat yang diemulasi dengan memanggil LocationManager.getLastKnownLocation("gps").

geo fix longitude latitude [altitude] [satellites] [velocity] Mengirim perbaikan GPS sederhana ke emulator. Menentukan longitude dan latitude dalam derajat desimal. Menggunakan angka dari 1 sampai 12 untuk menentukan jumlah satellites yang akan digunakan untuk menentukan posisi, dan menentukan altitude dalam meter dan velocity dalam knot.
geo nmea sentence Mengirim kalimat NMEA 0183 ke perangkat yang diemulasikan, seolah dikirim darimodem GPS yang diemulasikan. Mulai sentence dengan '$GP'. Hanya kalimat '$GPGGA' dan '$GPRCM' yang saat ini didukung. Contoh berikut adalah kalimat GPGGA (Global Positioning System Fix Data) yang mendapatkan waktu, posisi, dan memperbaiki data untuk penerima GPS:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
Peristiwa hardware palsu Deskripsi
event types Mencantumkan semua jenis peristiwa palsu. Untuk peristiwa yang memiliki kode, jumlah kode tercantum dalam tanda kurung di sebelah kanan.

event types
event <type> can be an integer or one of the following aliases:
    EV_SYN
    EV_KEY    (405 code aliases)
    EV_REL    (2 code aliases)
    EV_ABS    (27 code aliases)
    EV_MSC
    EV_SW     (4 code aliases)
    EV_LED
    EV_SND
    EV_REP
    EV_FF
    EV_PWR
    EV_FF_STATUS
    EV_MAX
OK
        

event send types [types ...] Mengirim satu atau beberapa jenis peristiwa palsu.
event codes type Mencantumkan kode acara untuk jenis peristiwa palsu yang ditentukan.
event send type[:code]:[value] [...] Mengirim satu atau beberapa peristiwa palsu dengan kode opsional dan nilai kode.

Untuk menemukan peristiwa yang akan dikirim, Anda dapat menggunakan perintah adb sambil menekan tombol pada emulator secara manual.

Berikut adalah peristiwa yang dihasilkan saat Anda menekan tombol daya:

adb shell getevent -lt

/dev/input/event12: EV_KEY       KEY_POWER            DOWN
/dev/input/event12: EV_SYN       SYN_REPORT           00000000
/dev/input/event12: EV_KEY       KEY_POWER            UP
/dev/input/event12: EV_SYN       SYN_REPORT           00000000
      
Misalnya, untuk menyimulasikan penekanan lama tombol daya, kirim dua peristiwa EV_KEY untuk keydown dan keyup:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
      

event text message Mengirim string karakter yang melakukan simulasi penekanan tombol. Pesan harus berupa string UTF-8. Postingan Unicode dipetakan terbalik sesuai dengan keyboard perangkat saat ini, dan karakter yang tidak didukung akan dibuang tanpa pemberitahuan.
Kontrol status daya Deskripsi
power display Menampilkan status baterai dan pengisi daya.
power ac {on|off} Menyetel status pengisian daya AC menjadi on atau off.
power status {unknown|charging|discharging|not-charging|full} Mengubah status baterai seperti yang ditentukan.
power present {true|false} Menyetel status keberadaan baterai.
power health {unknown|good|overheat|dead|overvoltage|failure} Menyetel status kesehatan baterai.
power capacity percent Menyetel status kapasitas baterai yang tersisa dalam persen antara 0 hingga 100.
Status koneksi jaringan Deskripsi
network status Memeriksa status jaringan serta karakteristik kecepatan dan waktu tunda saat ini.
network delay latency

Mengubah latensi jaringan yang diemulasikan.

Dengan adanya emulator, Anda dapat melakukan simulasi berbagai tingkat latensi jaringan sehingga dapat menguji aplikasi di lingkungan yang lebih khas dari kondisi berjalan yang sebenarnya. Anda dapat menyetel tingkat atau rentang latensi saat memulai emulator, atau menggunakan konsol untuk mengubah latensi saat aplikasi berjalan di emulator.

Format latency jaringan adalah salah satu dari berikut ini (angkanya dalam milidetik):

Format latensi jaringan:

  • gprs: GPRS, yang menggunakan rentang latensi minimum 150 dan maksimum 550.
  • edge: EDGE/EGPRS, yang menggunakan rentang latensi minimum 80 dan maksimum 400.
  • umts: UMTS/3G, yang menggunakan rentang latensi minimum 35 dan maksimum 200.
  • none: Tanpa latensi.
  • num: Mengemulasikan latensi yang ditentukan dalam milidetik.
  • min:max: Mengemulasikan rentang latensi yang telah ditentukan.

Untuk menyetel latensi saat memulai emulator, gunakan -netdelay opsi emulator dengan nilai latency yang didukung, seperti yang tercantum dalam daftar Format latensi jaringan sebelumnya. Berikut beberapa contohnya:

emulator -netdelay gprs
emulator -netdelay 40,100

Untuk mengubah penundaan jaringan saat emulator sedang berjalan, sambungkan ke konsol dan gunakan perintah netdelay dengan nilai latency yang didukung dari daftar Format latensi jaringan sebelumnya.

network delay gprs
network delay 40 100
network speed speed Emulator memungkinkan Anda melakukan simulasi berbagai laju transfer jaringan.

Anda dapat menyetel laju atau rentang transfer pada saat memulai emulator, atau menggunakan konsol untuk mengubah laju saat aplikasi berjalan di emulator.

Format speed jaringan adalah salah satu dari berikut ini (angkanya dalam kilobit/dtk):

Format kecepatan jaringan:

  • gsm: GSM/CSD, yang menggunakan kecepatan upload 14,4 dan download 14,4.
  • hscsd: HSCSD, yang menggunakan kecepatan upload 14,4 dan download 43,2.
  • gprs: GPRS, yang menggunakan kecepatan upload 40,0 dan download 80,0.
  • edge: EDGE/EGPRS, yang menggunakan kecepatan upload 118,4 dan download 236,8.
  • umts: UMTS/3G, yang menggunakan kecepatan upload 128,0 dan download 1920.
  • hsdpa: HSDPA, yang menggunakan kecepatan upload 348,0 dan download 14.400,0.
  • lte: LTE, yang menggunakan kecepatan upload 58.000 dan download 173.000.
  • evdo: EVDO, yang menggunakan kecepatan upload 75.000 dan download 280.000.
  • full: Kecepatan tidak terbatas, tetapi bergantung pada kecepatan koneksi jaringan komputer Anda.
  • num: Menyetel laju yang tepat dalam kilobit/detik yang digunakan untuk mengupload dan mendownload.
  • up:down: Menyetel laju yang tepat dalam kilobit/detik untuk mengupload dan mendownload secara terpisah.

Untuk menyetel kecepatan jaringan pada saat memulai emulator, gunakan -netspeed opsi emulator dengan nilai speed yang didukung, seperti dalam daftar Format kecepatan jaringan sebelumnya. Berikut beberapa contohnya:

emulator -netspeed gsm @Pixel_API_26
emulator -netspeed 14.4,80 @Pixel_API_26

Untuk mengubah kecepatan jaringan saat emulator sedang berjalan, sambungkan ke konsol dan gunakan perintah network speed dengan nilai speed yang didukung dari daftar Format kecepatan jaringan sebelumnya.

network speed 14.4 80
network capture {start|stop} file Mengirim paket ke file. Daftar berikut mendeskripsikan parameter dan nilai parameter:
  • start file: Mulai mengirim paket ke file yang ditentukan.
  • stop file: Berhenti mengirim paket ke file yang ditentukan.
Emulasi telepon Deskripsi
Emulator Android menyertakan modem emulasi GSM dan CDMA sendiri yang memungkinkan Anda melakukan simulasi fungsi telepon di emulator. Misalnya, dengan GSM Anda dapat melakukan simulasi panggilan telepon masuk serta membuat dan mengakhiri koneksi data. Dengan CDMA Anda dapat menyediakan sumber langganan dan daftar roaming yang disukai. Sistem Android akan menangani panggilan simulasi persis seperti panggilan sebenarnya. Emulator tidak mendukung audio panggilan.
gsm {call|accept|cancel|busy} phonenumber Parameter gsm adalah sebagai berikut:
  • call: Menyimulasikan panggilan telepon masuk dari phonenumber.
  • accept: Menerima panggilan masuk dari phonenumber dan mengubah status panggilan menjadi active. Anda dapat mengubah status panggilan menjadi active hanya jika status saat ini adalah waiting atau held.
  • cancel: Mengakhiri panggilan telepon masuk dari atau panggilan telepon keluar ke phonenumber.
  • busy: Menutup panggilan keluar ke phonenumber dan mengubah status panggilan menjadi busy. Anda dapat mengubah status panggilan menjadi busy hanya jika status saat ini adalah waiting.
gsm {data|voice} state Perintah data state mengubah status koneksi data GPRS, dan data voice state mengubah status koneksi suara GPRS, sebagai berikut:
  • unregistered: Jaringan tidak tersedia.
  • home: Berada di jaringan lokal, non-roaming.
  • roaming: Berada di jaringan roaming.
  • searching: Sedang menelusuri jaringan.
  • denied: Panggilan darurat saja.
  • off: Sama seperti unregistered.
  • on: Sama seperti home.
gsm hold Mengubah status panggilan menjadi hold. Anda dapat mengubah status panggilan menjadi hold hanya jika status saat ini adalah active atau waiting.
gsm list Mencantumkan semua panggilan masuk dan keluar beserta statusnya.
gsm status Melaporkan status suara/data GSM saat ini. Nilai adalah yang dijelaskan untuk perintah voice dan data.
gsm signal {rssi|ber} Mengubah kekuatan sinyal yang dilaporkan (rssi) dan bit error rate (ber) pada 15 detik update berikutnya. Daftar berikut ini menjelaskan parameter dan nilainya:
  • Rentang rssi adalah 0 hingga 31 dan 99 untuk yang tidak diketahui.
  • Rentang ber adalah 0 hingga 7 dan 99 untuk yang tidak diketahui.
gsm signal-profile num Menyetel profil kekuatan sinyal. num adalah angka antara 0 hingga 4.
cdma ssource source Menyetel sumber langganan CDMA saat ini, dengan source adalah daftar berbasis jaringan yang diizinkan dan berisi pelanggan operator CDMA beserta nilainya, sebagai berikut:
  • nv: Membaca langganan dari RAM non-volatile.
  • ruim: Membaca langganan dari Removable User Identity Module (RUIM).
cdma prl_version version Membuang versi preferred roaming list (PRL) saat ini. Nomor versi adalah untuk database PRL yang berisi informasi yang digunakan selama proses pemilihan dan akuisisi sistem.
Mengelola Sensor pada emulator Deskripsi
Perintah ini berhubungan dengan sensor yang tersedia di AVD. Selain menggunakan perintah sensor, Anda dapat melihat dan menyesuaikan setelan di emulator pada layar Virtual sensors di tab Accelerometer dan Additional sensors.
sensor status Mencantumkan semua sensor dan statusnya. Berikut adalah contoh output untuk perintah sensor status:
sensor get sensor-name Mendapatkan setelan untuk sensor-name. Contoh berikut adalah nilai untuk sensor akselerasi:
sensor get acceleration
acceleration = 2.23517e-07:9.77631:0.812348

Nilai acceleration yang dipisahkan oleh titik dua (:) merujuk pada koordinat x, y, dan z untuk sensor virtual.

sensor set sensor-name value-x:value-y:value-z Menetapkan nilai untuk sensor-name. Contoh berikut menetapkan sensor akselerasi ke nilai x, y, dan z yang dipisahkan oleh titik dua.
sensor set acceleration 2.23517e-07:9.77631:0.812348
Emulasi SMS Deskripsi
sms send sender-phone-number textmessage Menghasilkan SMS masuk yang diemulasi. Daftar berikut ini menjelaskan parameter dan nilainya:
  • sender-phone-number: Berisi string numerik arbitrer.
  • textmessage: Pesan sms.

Berikut adalah contoh pengiriman pesan "hi there" ke nomor telepon 4085555555:

sms send 4085555555 hi there

Konsol akan meneruskan pesan SMS ke framework Android, yang akan diteruskan ke aplikasi pada emulator yang menangani SMS, seperti aplikasi Pesan. Jika Anda memasukkan 10 angka, aplikasi akan memformatnya sebagai nomor telepon. String numerik yang lebih panjang atau lebih pendek akan menampilkan cara Anda mengirimnya.

Simulasi sidik jari Deskripsi
finger touch fingerprint-id Menyimulasikan jari yang menyentuh sensor.
finger remove Menyimulasikan pelepasan jari dari sensor.

Untuk mengetahui petunjuk tentang penggunaan perintah ini, baca bagian berikut tentang simulasi dan validasi sidik jari.

Simulasi dan validasi sidik jari

Gambar 1. Layar autentikasi sidik jari.

Gunakan perintah finger untuk menyimulasikan dan memvalidasi autentikasi sidik jari untuk aplikasi Anda. Anda memerlukan SDK Tools 24.3 atau yang lebih tinggi, dan Android 6.0 (API level 23) atau yang lebih tinggi.

Untuk menyimulasikan dan memvalidasi autentikasi sidik jari, ikuti langkah-langkah ini:

  1. Jika Anda belum memiliki ID sidik jari, daftarkan sidik jari baru di emulator dengan memilih Setelan > Keamanan > Sidik jari dan ikuti petunjuk pendaftaran.
  2. Siapkan aplikasi Anda untuk menerima autentikasi sidik jari. Setelah melakukan penyiapan ini, perangkat Anda akan menampilkan layar autentikasi sidik jari.
  3. Saat aplikasi menampilkan layar autentikasi sidik jari, buka konsol dan masukkan perintah finger touch serta ID sidik jari yang Anda buat. Aplikasi akan melakukan simulasi sentuhan jari.
  4. Kemudian, masukkan perintah finger remove untuk melakukan simulasi pelepasan jari dari sensor.

    Aplikasi Anda akan merespons seolah-olah pengguna menyentuh lalu melepaskan jarinya dari sensor sidik jari.