Setiap perangkat virtual yang berjalan menyediakan konsol yang memungkinkan Anda membuat kueri 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 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:
Buka jendela terminal dan masukkan perintah berikut:
telnet localhost console-portJudul 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 devicesmencetak 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 dari localhost saja.
Setelah konsol menampilkan OK, masukkan perintah
auth auth_token.Sebelum Anda dapat memasukkan perintah konsol, konsol emulator memerlukan autentikasi.
auth_tokenharus cocok dengan isi file.emulator_console_auth_tokendi direktori beranda Anda.Jika file tersebut tidak ada, perintah
telnet localhost console-portakan membuat file yang berisi token autentikasi yang dibuat secara acak. Untuk menonaktifkan autentikasi, hapus token dari file.emulator_console_auth_tokenatau buat file kosong jika tidak ada.Setelah Anda terhubung ke konsol, masukkan perintah konsol.
Masukkan
help,help command, atauhelp-verboseuntuk melihat daftar perintah konsol dan mempelajari perintah khusus.Untuk keluar dari sesi konsol, masukkan
quitatauexit.
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 (ethernet and cellular only)
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.
Perintah fire-and-forget
Jika Anda tidak perlu membuka sesi, gunakan pintasan adb emu, yang
mengeksekusi perintah dan segera mengembalikan kontrol ke shell pemanggilan:
adb emu command commandParameter
Pemanggilan dengan adb emu terhubung ke emulator yang tersedia. Jika menjalankan
beberapa emulator secara bersamaan, Anda harus meneruskan serial emulator
tertentu yang menjadi target Anda:
adb -s emulator-serial emu command commandParameter
Referensi perintah emulator
Daftar berikut mendeskripsikan perintah konsol emulator beserta parameter dan nilainya:
Perintah umum
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 berjalan atau berhenti.
- 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 nama.
- load name: Memuat snapshot yang bernama.
- delete name: Menghapus snapshot bernama.
Contoh berikut menyimpan snapshot dengan nama
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold: 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 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
crash: Menghentikan emulator selama menjalankan aplikasi.
crash-on-exit: Menghentikan emulator saat aplikasi ditutup.
Tag debug
tag debug ...: Mengaktifkan atau menonaktifkan pesan debug dari bagian emulator tertentu. Parameter tag harus berupa nilai dari daftar tag debug yang muncul saat Anda menjalankan
emulator -help-debug-tags. Untuk mengetahui informasi selengkapnya tentang opsi-help-debug-tags, lihat tabel opsi yang umum digunakan. Contoh berikut mengaktifkan tag radio:debug radio
Pengalihan port
redir list: Mencantumkan pengalihan port saat ini.
redir add protocol:host-port:guest-portMenambahkan pengalihan port baru, sebagai berikut:- protocol: Harus berupa 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-portMenghapus pengalihan port.- protocol: Harus berupa tcp atau udp.
- host-port: Nomor port yang harus dibuka pada host.
Lokasi geografis
Menyetel lokasi geografis yang dilaporkan ke aplikasi yang berjalan dalam emulator dengan mengirimkan perbaikan GPS ke emulator.
Anda dapat memberikan salah satu perintah geo berikut segera 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 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. Tentukan bujur dan lintang dalam derajat desimal. Gunakan angka dari 1 hingga 12 untuk menentukan jumlah satelit yang akan digunakan untuk menentukan posisi, dan tentukan ketinggian dalam meter dan kecepatan dalam knot.
geo nmea sentence: Mengirim kalimat NMEA 0183 ke perangkat yang diemulasikan seolah-olah dikirim dari modem GPS yang diemulasikan. Mulai kalimat dengan '$GP'. Saat ini, hanya kalimat '$GPGGA' dan '$GPRCM' yang 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
Subsistem peristiwa hardware konsol emulator memungkinkan Anda menyimulasikan hampir semua interaksi fisik dengan perangkat. Hal ini mencakup tombol fisik, sentuhan/gestur layar, tombol putar, input joystick, dan tombol hardware.
jenis peristiwa: Mencantumkan semua jenis peristiwa palsu. Untuk acara yang memiliki kode, jumlah kode tercantum dalam tanda kurung di sebelah kanan. Contoh output:
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 OKevent send types [types ...]: Mengirim satu atau beberapa jenis peristiwa palsu.
jenis kode acara: 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.
EV_KEY — Referensi Kode Kunci
Jenis peristiwa EV_KEY digunakan untuk menyimulasikan penekanan dan pelepasan tombol. Tabel berikut membagi daftar besar kode tombol yang didukung ke dalam kategori logis. Untuk setiap kode tombol, pengiriman nilai 1 akan menyimulasikan penekanan,
sedangkan nilai 0 akan menyimulasikan pelepasan. Nilai 2 merepresentasikan pengulangan
tombol.
Subtabel A: Kunci Sistem Android
| Kode | Deskripsi |
|---|---|
KEY_HOME |
Pemicu tombol layar utama |
KEY_BACK |
Pemicu tombol kembali |
KEY_MENU |
Tombol menu (tambahan) |
KEY_POWER |
Tombol daya (tekan/tekan lama) |
KEY_VOLUMEUP |
Pemicu tombol Naikkan Volume |
KEY_VOLUMEDOWN |
Pemicu tombol Turunkan Volume |
KEY_CAMERA |
Tombol shutter Kamera fisik |
KEY_FOCUS |
Shutter fokus otomatis kamera |
KEY_SEARCH |
Pemicu tombol penelusuran |
KEY_SLEEP |
Pemicu perintah tidur |
KEY_WAKEUP |
Pemicu perintah aktif |
KEY_NOTIFICATION |
Buka panel notifikasi |
KEY_MUTE |
Membisukan output audio sistem |
KEY_MICMUTE |
Membisukan input mikrofon |
KEY_BRIGHTNESSDOWN |
Menurunkan kecerahan layar |
KEY_BRIGHTNESSUP |
Meningkatkan kecerahan layar |
KEY_PHONE |
Membuka aplikasi telepon default |
KEY_SEND |
Mengirim atau memulai panggilan telepon |
KEY_HEADSETHOOK |
Tombol headset (jawab/tutup telepon) |
KEY_SCREEN |
Perintah aktif screensaver |
KEY_CONFIG |
Menu sistem konfigurasi |
KEY_SWITCHVIDEOMODE |
Mengalihkan mode video sistem |
KEY_KBDILLUMTOGGLE |
Mengaktifkan/menonaktifkan lampu latar keyboard |
Subtabel B: Kontrol Media & Pemutaran
| Kode | Deskripsi |
|---|---|
KEY_PLAYPAUSE |
Mengalihkan status putar dan jeda |
KEY_PLAY |
Mulai pemutaran media |
KEY_PAUSECD |
Menjeda pemutaran CD |
KEY_STOPCD |
Menghentikan pemutaran CD |
KEY_NEXTSONG |
Lewati ke lagu berikutnya |
KEY_PREVIOUSSONG |
Lewati ke lagu sebelumnya |
KEY_REWIND |
Memundurkan jalur aktif |
KEY_FASTFORWARD |
Mempercepat trek aktif |
KEY_RECORD |
Perintah pemicu perekaman |
KEY_SHUFFLE |
Mengaktifkan/menonaktifkan pemutaran acak |
KEY_REPEAT |
Mengaktifkan/menonaktifkan pemutaran berulang |
KEY_MEDIA |
Pemicu tombol media |
Subtabel C: Navigasi & Keyboard Umum
| Kode | Deskripsi |
|---|---|
KEY_UP |
Arah D-pad Atas |
KEY_DOWN |
Arah D-pad Bawah |
KEY_LEFT |
Arah D-pad Kiri |
KEY_RIGHT |
Arah D-pad Kanan |
KEY_PAGEUP |
Navigasi Page up |
KEY_PAGEDOWN |
Navigasi turun halaman |
KEY_INSERT |
Menyisipkan pemicu utama |
KEY_DELETE |
Pemicu hapus kunci |
KEY_ENTER |
Pemicu tombol enter |
KEY_ESC |
Pemicu tombol keluar |
KEY_TAB |
Pemicu tombol tab |
KEY_SPACE |
Pemicu tombol spasi |
KEY_BACKSPACE |
Pemicu tombol backspace |
KEY_CLEAR |
Hapus buffer input |
KEY_CANCEL |
Membatalkan tindakan aktif |
KEY_OK |
Konfirmasi/OKE pilihan |
KEY_SELECT |
Pemicu pilih item |
KEY_GOTO |
Pergi ke tempat yang ditentukan |
KEY_HELP |
Mengakses konteks bantuan |
Subtabel D: Alfanumerik & Simbol Keypad
- Huruf Alfabet Standar:
KEY_AhinggaKEY_Z(26 kode). - Tombol keypad angka:
KEY_1hinggaKEY_0(10 kode).
| Kode | Simbol Karakter |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (Keypad numerik) |
KEY_KPPLUS |
+ (Keypad numerik) |
KEY_KPMINUS |
- (Keypad numerik) |
KEY_KPDOT |
. (Keypad numerik) |
KEY_KPSLASH |
/ (Keypad numerik) |
KEY_KPENTER |
Enter (Keypad numerik) |
KEY_KPEQUAL |
= (Keypad numerik) |
KEY_KPCOMMA |
, (Keypad numerik) |
KEY_KPJPCOMMA |
, (tata letak Jepang) |
KEY_KPLEFTPAREN |
( (Keypad numerik) |
KEY_KPRIGHTPAREN |
) (Keypad numerik) |
KEY_KPPLUSMINUS |
± (Keypad numerik) |
Subtabel E: Tombol Pengubah & Fungsi
- Tombol Fungsi Standar:
KEY_F1hinggaKEY_F24(24 kode).
| Kode | Deskripsi |
|---|---|
KEY_LEFTSHIFT |
Pengubah keyboard Shift Kiri |
KEY_RIGHTSHIFT |
Pengubah keyboard Shift Kanan |
KEY_LEFTCTRL |
Pengubah keyboard Kontrol Kiri |
KEY_RIGHTCTRL |
Pengubah keyboard Kontrol Kanan |
KEY_LEFTALT |
Pengubah keyboard Alt Kiri |
KEY_RIGHTALT |
Pengubah keyboard Alt Kanan |
KEY_LEFTMETA |
Tombol Meta/Command kiri |
KEY_RIGHTMETA |
Tombol Meta/Command Kanan |
KEY_CAPSLOCK |
Tombol keyboard Caps Lock |
KEY_NUMLOCK |
Tombol keyboard Num Lock |
KEY_SCROLLLOCK |
Tombol keyboard Scroll Lock |
KEY_COMPOSE |
Helper karakter Compose |
KEY_FN |
Tombol FN keyboard fisik |
KEY_FN_ESC |
Kombinasi tombol fungsi |
KEY_FN_1 |
Pintasan fungsi khusus 1 |
KEY_FN_2 |
Pintasan fungsi khusus 2 |
KEY_FN_D |
Pintasan fungsi khusus D |
KEY_FN_E |
Pintasan fungsi khusus E |
KEY_FN_F |
Pintasan fungsi khusus F |
KEY_FN_S |
Pintasan fungsi khusus S |
KEY_FN_B |
Pintasan fungsi khusus B |
Subtabel F: Gamepad & Joystick
| Kode | Deskripsi |
|---|---|
BTN_A/BTN_B/BTN_C |
Tombol muka pengontrol A/B/C |
BTN_X/BTN_Y/BTN_Z |
Tombol muka pengontrol X/Y/Z |
BTN_START |
Tombol menu Mulai Gamepad |
BTN_SELECT |
Tombol Pilih Gamepad |
BTN_MODE |
Tombol Mode Pengontrol |
BTN_TL/BTN_TR |
Tombol bahu Kiri / Kanan |
BTN_TL2/BTN_TR2 |
Pemicu analog Kiri / Kanan |
BTN_THUMBL/BTN_THUMBR |
Klik stik Kiri / Kanan |
BTN_DPAD_UP |
Pemicu D-pad Atas Gamepad |
BTN_DPAD_DOWN |
Pemicu D-pad Bawah Gamepad |
BTN_DPAD_LEFT |
Pemicu Kiri D-pad Gamepad |
BTN_DPAD_RIGHT |
Pemicu Kanan D-pad Gamepad |
BTN_THUMB |
Pemicu ibu jari utama joystick |
BTN_TOP/BTN_TOP2 |
Tombol atas joystick |
BTN_PINKIE |
Pemicu tombol kelingking joystick |
BTN_BASE ke _BASE6 |
Tombol dasar platform joystick |
BTN_DEAD |
Flag zona mati gamepad tidak aktif |
BTN_TRIGGER |
Pemicu tangan joystick fisik |
BTN_JOYSTICK |
Kode input joystick generik |
Subtabel G: Input Mouse, Sentuh & Stilus
| Kode | Deskripsi |
|---|---|
BTN_MOUSE |
Peristiwa kursor mouse generik |
BTN_LEFT |
Klik tombol kiri mouse |
BTN_RIGHT |
Klik tombol kanan mouse |
BTN_MIDDLE |
Klik roda scroll tengah |
BTN_SIDE |
Pemicu tombol samping navigasi |
BTN_EXTRA |
Pemicu tombol mouse tambahan |
BTN_FORWARD |
Klik navigasi browser maju |
BTN_BACK |
Klik navigasi browser kembali |
BTN_TASK |
Tombol pengalih tugas sistem |
BTN_TOUCH |
Kontak fisik layar terdeteksi |
BTN_STYLUS |
Kedekatan pena stilus aktif |
BTN_STYLUS2 |
Tombol barel sekunder pada stilus |
BTN_TOOL_PEN |
ID alat pena stilus |
BTN_TOOL_RUBBER |
ID alat penghapus stilus |
BTN_TOOL_BRUSH |
ID alat kuas pelukis |
BTN_TOOL_PENCIL |
ID alat pensil draf |
BTN_TOOL_AIRBRUSH |
ID alat cat airbrush |
BTN_TOOL_FINGER |
Kontak jari layar sentuh |
BTN_TOOL_MOUSE |
ID alat mouse eksternal |
BTN_TOOL_LENS |
Alat lensa pembesar optik |
BTN_TOOL_DOUBLETAP |
Flag kecepatan ketuk dua kali gestur |
BTN_TOOL_TRIPLETAP |
Flag kecepatan ketuk tiga kali gestur |
Subtabel H: Pintasan Aplikasi
| Kode | Tindakan Target |
|---|---|
KEY_WWW |
Meluncurkan browser web default |
KEY_MAIL |
Membuka program email default |
KEY_BOOKMARKS |
Membuka daftar bookmark browser |
KEY_CALC |
Membuka utilitas kalkulator |
KEY_FILE |
Membuka penjelajah file lokal |
KEY_EDIT |
Pemicu pengeditan dokumen |
KEY_NEW |
Pemicu baru pembuatan dokumen |
KEY_OPEN |
Pemicu pembukaan dokumen |
KEY_SAVE |
Pemicu tugas penyimpanan file |
KEY_CLOSE |
Pemicu tugas tutup file |
KEY_PRINT |
Pemicu tugas pencetakan file |
KEY_COPY |
Tindakan penyalinan buffer papan klip |
KEY_PASTE |
Tindakan penyisipan buffer papan klip |
KEY_CUT |
Tindakan potong buffer papan klip |
KEY_UNDO |
Tindakan urungkan buffer papan klip |
KEY_REDO |
Tindakan ulangi buffer papan klip |
KEY_CANCEL |
Memicu proses pembatalan buffer |
KEY_FIND |
Utilitas penelusuran dokumen |
KEY_REFRESH |
Utilitas pemuatan ulang dokumen |
KEY_EXIT |
Utilitas penutup dokumen |
KEY_DOCUMENTS |
Meluncurkan portal dokumen sistem |
KEY_HOMEPAGE |
Meluncurkan browser halaman beranda |
KEY_FAVORITES |
Membuka portal favorit browser |
KEY_CHAT |
Meluncurkan instant messenger |
KEY_EMAIL |
Pemicu peluncuran email alternatif |
KEY_FINANCE |
Membuka utilitas saham/keuangan |
KEY_SPORT |
Membuka utilitas pelacakan olahraga |
KEY_SHOP |
Membuka portal belanja digital |
KEY_PLAYER |
Membuka pemutar media utama |
KEY_MP3 |
Buka pemutar MP3 utama |
KEY_TEXT |
Membuka editor teks default |
KEY_LIST |
Membuka utilitas checklist |
KEY_MEMO |
Membuka utilitas notepad / memo |
KEY_CALENDAR |
Membuka portal kalender / agenda |
KEY_DIRECTORY |
Membuka direktori alamat sistem |
KEY_COMPUTER |
Membuka penjelajah spesifikasi |
KEY_TV/KEY_TV2 |
Meluncurkan portal televisi |
KEY_RADIO |
Meluncurkan utilitas radio |
KEY_CD/KEY_DVD |
Mengaktifkan pembaca drive optik |
KEY_AUDIO/KEY_VIDEO |
Mengakses spesifikasi media |
KEY_TUNER |
Mengonfigurasi penerima/penala |
KEY_SAT/KEY_SAT2 |
Mengonfigurasi feed satelit |
KEY_TAPE |
Putar deck media kaset |
KEY_VCR |
Memutar feed pemutar VCR |
KEY_VCR2 |
Memutar feed pemain VCR 2 |
KEY_AUX |
Input port media tambahan |
KEY_SETUP |
Menu konfigurasi penyiapan |
KEY_PROG1 ke _PROG4 |
Kunci program yang ditentukan pengguna |
KEY_ZOOM |
Tombol alih zoom area pandang |
KEY_MODE |
Pilihan mode area pandang |
KEY_KEYBOARD |
Menampilkan/menyembunyikan keyboard virtual |
KEY_LANGUAGE |
Mengubah bahasa trek audio |
KEY_TITLE |
Membuka opsi judul media |
KEY_SUBTITLE |
Mengaktifkan/menonaktifkan antarmuka subtitel |
KEY_ANGLE |
Mengubah sudut kamera video |
KEY_EPG |
Membuka panduan program elektronik |
KEY_PVR |
Membuka perekam video pribadi |
KEY_MHP |
Platform rumah multimedia terbuka |
KEY_CHANNEL |
Membuka saluran tuner TV |
KEY_CHANNELUP |
Menyesuaikan saluran TV ke atas |
KEY_CHANNELDOWN |
Menyesuaikan saluran TV ke bawah |
KEY_RED |
Tombol interaktif merah |
KEY_GREEN |
Tombol interaktif hijau |
KEY_YELLOW |
Tombol interaktif kuning |
KEY_BLUE |
Tombol interaktif biru |
KEY_FIRST |
Pilih opsi item pertama |
KEY_LAST |
Pilih opsi item terakhir |
KEY_NEXT |
Pilih opsi trek berikutnya |
KEY_PREVIOUS |
Pilih opsi trek sebelumnya |
KEY_RESTART |
Memulai ulang loop trek media |
KEY_SLOW |
Opsi pemutaran gerak lambat |
KEY_AB |
Loop urutan pengulangan A-B |
KEY_PLAYCD |
Perintah putar deck CD |
KEY_PAUSECD |
Perintah jeda deck CD |
KEY_STOPCD |
Perintah berhenti CD deck |
KEY_DIGITS |
Perintah entri keypad digital |
KEY_TEEN |
Opsi nilai remaja keypad |
KEY_TWEN |
Opsi nilai twen keypad |
KEY_DEL_EOL |
Menghapus ke akhir buffer baris |
KEY_DEL_EOS |
Menghapus hingga akhir buffer layar |
KEY_INS_LINE |
Menyisipkan buffer baris baru |
KEY_BRL_DOT1 ke _DOT8 |
Input tombol penampil braille |
KEY_VOICECOMMAND |
Meluncurkan aplikasi asisten suara |
KEY_SELECTIVE_SCREEN |
Memicu pengambilan cuplikan layar regional |
KEY_BATTERY |
Mengirim kueri notifikasi baterai |
KEY_STAR/KEY_SHARP |
Simbol keypad telepon |
KEY_PLUS |
Keypad telepon dan simbol plus |
KEY_INFO |
Menampilkan overlay panel info |
KEY_TIME |
Menampilkan waktu jam saat ini |
KEY_VENDOR |
Mengueri spesifikasi vendor |
KEY_ARCHIVE |
Membuka utilitas arsip lokal |
KEY_PROGRAM |
Mengonfigurasi parameter program |
KEY_POWER2 |
Memicu daya cadangan alternatif |
EV_ABS — Peristiwa Gerakan Absolut
Jenis peristiwa EV_ABS sangat penting untuk menyimulasikan sentuhan yang presisi, gestur tarik lalu lepas, tindakan mencubit multi-sentuh, dan penyesuaian joystick. Koordinat
absolut di bawah dipetakan langsung ke resolusi layar fisik yang mendasarinya.
| Kode | Rentang Koordinat | Deskripsi |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 atau ≥0 |
ID Pelacakan; -1 mengakhiri sentuhan |
ABS_MT_POSITION_X |
0 ke 1767 |
Koordinat X (Pixel Fold) |
ABS_MT_POSITION_Y |
0 ke 2207 |
Koordinat Y (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
piksel | Lebar sumbu utama area sentuh |
ABS_MT_TOUCH_MINOR |
piksel | Lebar sumbu kecil area sentuh |
ABS_MT_WIDTH_MAJOR |
piksel | Lebar sumbu utama alat |
ABS_MT_WIDTH_MINOR |
piksel | Lebar sumbu kecil alat |
ABS_MT_ORIENTATION |
0 ke 255 |
Sudut orientasi kontak |
ABS_MT_PRESSURE |
0 ke 255 |
Besar gaya kontak |
ABS_MT_DISTANCE |
mm | Jarak mengambang dari layar |
ABS_MT_TOOL_TYPE |
0 ke 2 |
0=jari, 1=pena, 2=pensil |
ABS_MT_BLOB_ID |
bilangan bulat | ID blob kontak |
ABS_MT_TOOL_X |
piksel | Koordinat posisi X alat |
ABS_MT_TOOL_Y |
piksel | Koordinat posisi Y alat |
ABS_MT_SLOT |
0 ke N |
Slot aktif (Protokol B) |
ABS_X/_Y/_Z |
analog | Sumbu koordinat joystick |
ABS_RX/_RY/_RZ |
analog | Sumbu rotasi joystick |
ABS_THROTTLE/_BRAKE |
analog | Kontrol pedal dan kemudi |
ABS_HAT0X/_HAT0Y |
-1/0/1 |
Topi D-pad & sakelar POV |
ABS_PRESSURE |
0 ke 255 |
Tingkat tekanan stilus / kursor |
ABS_DISTANCE |
mm | Jarak kursor (pena stilus) |
ABS_TILT_X/_TILT_Y |
derajat | Sudut kemiringan stilus |
ABS_VOLUME |
analog | Tingkat volume pengontrol |
Interaksi sentuh Android didorong oleh Protokol Multi-sentuh (MT). Emulator modern menerapkan Protocol A (stateless, mengirim paket kontak yang dipisahkan oleh tanda sinkronisasi) dan Protocol B (stateful, menetapkan kontak ke slot pelacakan khusus). Protocol B memungkinkan pelacakan yang efisien untuk beberapa sentuhan serentak untuk gestur seperti mencubit untuk memperbesar.
EV_REL & EV_SW — Gerakan & Tombol Hardware
Kategori peristiwa EV_REL mengelola perubahan pointer atau koordinat relatif,
yang terutama digunakan untuk meniru gerakan mouse eksternal atau roda
scrolling. Kategori peristiwa EV_SW mengelola tombol akses perangkat fisik, seperti
apakah ponsel flip atau tablet dilipat, atau apakah hardware audio eksternal
dimasukkan.
| Kode | Nilai | Deskripsi |
|---|---|---|
REL_X |
Delta | Gerakan kursor horizontal |
REL_Y |
Delta | Gerakan kursor vertikal |
SW_LID |
0/1 |
Status tutup laptop (0=Terbuka, 1=Tertutup) |
SW_TABLET_MODE |
0/1 |
Status mode tablet (0=Nonaktif, 1=Aktif) |
SW_HEADPHONE_INSERT |
0/1 |
Status colokan headphone (0=Keluar, 1=Masuk) |
SW_MICROPHONE_INSERT |
0/1 |
Status colokan mikrofon (0=Keluar, 1=Masuk) |
Sintaksis Pengiriman Perintah
Untuk mengirimkan kode ini, format perintah konsol dengan jenis, kode, dan
nilai yang dipisahkan oleh titik dua. Anda dapat mengantrekan beberapa perubahan koordinat dalam
satu string. Yang penting, selalu tambahkan tanda sinkronisasi akhir
(EV_SYN:0:0) untuk menunjukkan bahwa framework emulator harus memaketkan dan
memproses input ini bersama-sama.
Contoh Skrip Peristiwa & Gestur
Karena Telnet memungkinkan pengiriman parameter multi-bagian, Anda dapat menyimulasikan urutan gestur fisik yang realistis. Berikut adalah struktur skrip peristiwa mentah untuk mengotomatiskan gestur dari konsol host Anda.
Menyimulasikan Ketukan Layar
Untuk melakukan ketukan layar bersih pada koordinat target, tetapkan ID pelacakan, tentukan koordinat X dan Y di layar, simulasikan sentuhan kontak, sinkronkan, lalu lepaskan.
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Menyimulasikan Scroll Vertikal (Geser)
Untuk menjalankan gestur geser scroll, tahan sentuhan pada koordinat awal, kirim frame koordinat gerakan perantara, dan lepaskan di akhir.
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Menyimulasikan Gestur Cubit untuk Zoom
Untuk memicu zoom dua jari, gunakan slot MT aktif (0 dan 1) untuk melacak dan mengoordinasikan dua koordinat sentuhan serentak yang bergerak menjauhi satu sama lain.
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Menyimulasikan Peralihan Koneksi Headphone
Mensimulasikan penyisipan atau pelepasan colokan headphone untuk menguji pengalihan perutean audio. Nilai
1 menunjukkan penyisipan jack, dan 0 adalah pelepasan headphone.
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
Menemukan Kode Acara Konsol dari Perangkat Asli
Untuk menemukan urutan sintaksis peristiwa yang tepat untuk gestur tombol atau tindakan kustom apa pun, hubungkan melalui adb shell dan jalankan utilitas diagnostik getevent. Saat Anda berinteraksi dengan GUI emulator, konsol akan mencetak kode, jenis, dan posisi peristiwa yang tepat.
# Run getevent to monitor input events dynamically
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
- pesan teks acara: 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
tampilan daya: Menampilkan status baterai dan pengisi daya.
power ac {on| off}: Menyetel status pengisian daya AC menjadi aktif atau nonaktif.
status daya {tidak diketahui| mengisi daya| mengosongkan daya| tidak mengisi daya| penuh}: Mengubah status baterai seperti yang ditentukan.
power present {true| false}: Menyetel status keberadaan baterai.
power health {unknown| good| overheat| dead| overvoltage| failure}: Menetapkan status kesehatan baterai.
power capacity percent: Menyetel status kapasitas baterai yang tersisa dalam persen dari 0 hingga 100.
Status koneksi jaringan (khusus Ethernet dan Seluler)
status jaringan: Memeriksa status jaringan serta karakteristik kecepatan dan waktu tunda saat ini.
network delay latencyMengubah 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 latensi jaringan adalah salah satu dari berikut ini (angkanya dalam milidetik):
Format latensi jaringan:
gprs: GPRS, yang menggunakan rentang latensi minimum sebesar 150 dan maksimum sebesar 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: Tidak ada latensi.
num: Mengemulasikan latensi yang ditentukan dalam milidetik.
min:max: Mengemulasikan rentang latensi yang ditentukan.
Untuk menyetel latensi saat memulai emulator, gunakan opsi emulator
-netdelaydengan nilai latensi yang didukung. Contoh:emulator -netdelay gprs emulator -netdelay 40,100Untuk mengubah penundaan jaringan saat emulator sedang berjalan, sambungkan ke konsol dan gunakan perintah
network delay:network delay gprs network delay 40 100network speed speedEmulator memungkinkan Anda melakukan simulasi berbagai laju transfer jaringan. Anda dapat menyetel laju atau rentang transfer saat memulai emulator, atau menggunakan konsol untuk mengubah laju saat aplikasi berjalan di emulator.Format kecepatan jaringan adalah salah satu dari berikut ini (angkanya dalam kilobit/detik):
Format kecepatan jaringan:
gsm: GSM/CSD, yang menggunakan kecepatan 14,4 ke atas dan 14,4 ke bawah.
hscsd: HSCSD, yang menggunakan kecepatan 14,4 ke atas dan 43,2 ke bawah.
gprs: GPRS, yang menggunakan kecepatan 40,0 ke atas dan 80,0 ke bawah.
edge: EDGE/EGPRS, yang menggunakan kecepatan 118,4 ke atas dan 236,8 ke bawah.
umts: UMTS/3G, yang menggunakan kecepatan 128,0 ke atas dan 1920 ke bawah.
hsdpa: HSDPA, yang menggunakan kecepatan upload 348,0 dan download 14.400,0.
lte: LTE, yang menggunakan kecepatan 58.000 ke atas dan 173.000 ke bawah.
evdo: EVDO, yang menggunakan kecepatan 75.000 ke atas dan 280.000 ke bawah.
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 saat emulator dimulai, gunakan opsi emulator
-netspeed. Contoh:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Untuk mengubah kecepatan jaringan saat emulator sedang berjalan, sambungkan ke konsol dan gunakan perintah
network speed:network speed 14.4 80network capture {start| stop} fileMengirim paket ke file. Daftar berikut ini mendeskripsikan parameter dan nilai parameter:Catatan: Mulai Android Emulator 36.5 dan yang lebih baru, traffic koneksi Wi-Fi ditangani oleh netsim secara default. Perintah konsol pengambilan jaringan hanya merekam traffic seluler/WAN lama yang dirutekan melalui stack slirp QEMU. Untuk merekam paket jaringan Wi-Fi, Bluetooth, atau lanjutan di versi emulator modern, lihat Merekam traffic jaringan di panduan Jaringan Emulator Lanjutan.
start file: Mulai merekam paket jaringan. Untuk keamanan, file harus berupa nama file kosong (tanpa pemisah jalur seperti
/, dan tanpa..). File rekaman aktivitas paket akan disimpan di direktori konten AVD Anda dalam folderconsole_out/(misalnya,~/.android/avd/avd_name.avd/console_out/file).stop file: Berhenti mengirim paket ke file yang ditentukan.
Emulasi telepon
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 preferred roaming list. Sistem Android akan menangani panggilan simulasi persis seperti panggilan sebenarnya. Emulator tidak mendukung audio panggilan.
gsm {call| accept| cancel| busy} phonenumberParameter gsm adalah sebagai berikut:- call: Menyimulasikan panggilan telepon masuk dari phonenumber.
- accept: Menerima panggilan masuk dari phonenumber dan mengubah status panggilan menjadi aktif. Anda dapat mengubah status panggilan menjadi aktif hanya jika status saat ini adalah menunggu atau ditahan.
- cancel: Mengakhiri panggilan telepon masuk dari atau panggilan telepon keluar ke phonenumber.
- busy: Menutup panggilan keluar ke phonenumber dan mengubah status panggilan menjadi sibuk. Anda dapat mengubah status panggilan menjadi sibuk hanya jika status saat ini adalah menunggu.
gsm {data| voice} statePerintah status data mengubah status koneksi data GPRS, dan perintah status suara mengubah status koneksi suara GPRS, sebagai berikut:- unregistered: Jaringan tidak tersedia.
- home: Di jaringan lokal, non-roaming.
- roaming: Di jaringan roaming.
- searching: Mencari jaringan.
- denied: Panggilan darurat saja.
- off: Sama seperti unregistered.
- on: Sama seperti rumah.
gsm hold: Mengubah status panggilan menjadi ditahan. Anda dapat mengubah status panggilan menjadi ditahan hanya jika status saat ini adalah aktif atau menunggu.
gsm list: Mencantumkan semua panggilan masuk dan keluar beserta statusnya.
status gsm: Melaporkan status suara/data GSM saat ini. Nilai adalah yang dijelaskan untuk perintah suara 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:- rssi: rentangnya adalah 0 hingga 31 dan 99 untuk yang tidak diketahui.
- ber: rentangnya adalah 0 hingga 7 dan 99 untuk yang tidak diketahui.
gsm signal-profile num: Menyetel profil kekuatan sinyal. num adalah angka dari 0 hingga 4.
cdma ssource sourceMenyetel 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
Perintah ini berkaitan 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.
status sensor: Mencantumkan semua sensor dan statusnya.
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.812348Nilai akselerasi 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
sms send sender-phone-number textmessageMenghasilkan SMS masuk yang diemulasi. Daftar berikut ini menjelaskan parameter dan nilainya:- sender-phone-number: Berisi string numerik yang berubah-ubah.
- textmessage: Pesan sms.
Contoh berikut mengirim 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
sentuhan jari fingerprint-id: Menyimulasikan jari yang menyentuh sensor.
finger remove: Menyimulasikan pelepasan jari dari sensor.
Untuk mengetahui petunjuk tentang cara menggunakan perintah ini, lihat bagian berikut tentang simulasi dan validasi sidik jari.
Rekaman Layar
Perintah perekaman layar memungkinkan pengambilan file video berkualitas tinggi dari tampilan fisik emulator langsung dari sistem host. Hal ini sangat berguna untuk pipeline continuous integration dan pelaporan bug otomatis.
screenrecord {start| stop} fileMemulai atau menghentikan proses perekaman layar.- start file: Memulai perekaman video. File output harus diakhiri dengan
ekstensi
.webmyang wajib ada. Video yang direkam disimpan langsung di bawah direktori output konsol AVD Anda:~/.android/avd/avd_name.avd/console_out/file. - stop file: Menghentikan proses perekaman layar yang aktif.
- start file: Memulai perekaman video. File output harus diakhiri dengan
ekstensi
Otomatisasi & Makro
Subsistem otomatisasi memungkinkan developer merekam transisi status makro pada perangkat virtual yang sedang berjalan dan memutarnya kembali untuk menjalankan alur pengujian otomatis.
automation {record| stop-record| play| stop-play}Mengelola rekaman makro otomatis.- record: Mulai merekam perubahan status dan input perangkat.
- stop-record: Menghentikan sesi perekaman makro saat ini.
- play: Mulai memutar kembali urutan makro yang direkam.
- stop-play: Menghentikan urutan pemutaran makro yang aktif.
Fisika (6DoF)
Perintah fisika mengelola pencatatan pose spasial kebenaran dasar untuk model gerakan fisik enam derajat kebebasan (6DoF), yang digunakan untuk menyimulasikan pelacakan gerakan tingkat lanjut.
physics {record-gt| stop}Mengelola rekaman model pose fisik.- record-gt: Mulai merekam data pergerakan 6DoF kebenaran dasar.
- stop: Menghentikan proses perekaman data sebenarnya saat ini.
Kontrol Perangkat Lanjutan
Bagian ini menggabungkan endpoint perintah konsol yang sangat khusus untuk konfigurasi emulasi lanjutan, termasuk proxy jaringan, konfigurasi multi-layar, penggantian rendering, dan debug langsung hypervisor.
multidisplay {add| del}Menambahkan atau menghapus monitor virtual sekunder untuk menguji konfigurasi multi-layar. Catatan: Monitor sekunder tidak didukung pada profil perangkat layar ganda seperti Pixel Fold atau emulator yang Dapat diubah ukurannya.proxy {set| clear}Mengonfigurasi penerusan proxy jaringan secara terprogram dari konsol.- set host port: Mengonfigurasi setelan proxy target.
- clear: Mereset konfigurasi proxy kembali ke default. Catatan: Operasi setelan proxy gagal di lingkungan eksekusi headless.
virtualscene-image {wall| table} image_pathMenyesuaikan dinding latar belakang atau meja horizontal yang ditampilkan di feed kamera adegan virtual dengan file gambar pengguna kustom.resize-display scaleMenyesuaikan resolusi layar secara dinamis di antara skala preset. Catatan: Penyesuaian resolusi tidak didukung dalam konfigurasi tanpa tampilan.nodraw {on| off}Menonaktifkan rendering GUI fisik di layar host untuk mengurangi memori sistem dan beban GPU selama menjalankan otomatisasi headless di latar belakang dalam volume tinggi.grpc portMengonfigurasi kontrol perangkat terprogram lanjutan melalui endpoint port gRPC kustom.qemu monitorMemberikan akses terminal interaktif langsung ke konsol hypervisor yang mendasarinya. Perintah ini hanya dapat dimasukkan melalui sesi konsol Telnet yang aktif.icebox track pidMengaktifkan snapshot sistem otomatis saat proses aplikasi yang ditentukan mengalami pengecualian atau error yang tidak tertangani.phonenumber numberMenetapkan nomor telepon lokal virtual perangkat target.
Antarmuka terprogram gRPC
Versi emulator modern mendukung antarmuka terprogram gRPC yang canggih bersama dengan konsol Telnet lama. Meskipun konsol Telnet sangat cocok untuk sesi interaktif cepat atau pembuatan skrip sederhana, antarmuka gRPC dirancang untuk kontrol otomatis yang berperforma tinggi, aman, dan andal dalam integrasi berkelanjutan (CI) dan lingkungan tanpa tampilan. Dengan menawarkan endpoint layanan langsung, gRPC menghilangkan kebutuhan untuk mengurai aliran teks, mengelola handshake sesi terminal, atau mengekspos port localhost yang tidak dienkripsi.
Untuk membantu memilih antara konsol Telnet lama dan antarmuka gRPC terprogram modern, tinjau perbandingan performa, keamanan, dan kemampuan fitur berikut:
| Fitur | Konsol Telnet | Antarmuka gRPC |
|---|---|---|
| Paling Cocok untuk | Penelusuran bug manual, sesi interaktif. | CI/CD headless, platform pengujian otomatis yang berat. |
| Kecepatan | Lebih lambat; overhead teks, latensi koneksi. | Dioptimalkan; HTTP/2 yang di-multiplex, proto cepat. |
| Keamanan | Tidak dienkripsi; port lokal (5554–5585). | Dapat diamankan dengan TLS, berfungsi melalui jaringan. |
| Streaming | Tidak didukung; hanya permintaan-respons. | Streaming untuk logcat, perekaman audio tamu. |
| Media | Menulis file output ke disk host/tamu. | Buffer biner langsung melalui kabel. |
| Guest OS | Dibatasi untuk perintah emulator tetap. | Menjalankan perintah shell bash tamu native. |
Meluncurkan dan memanggil gRPC
Untuk menggunakan endpoint gRPC, luncurkan Android Emulator dari command line dan
sertakan flag -grpc, yang menentukan port loopback target.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
Setelah emulator berjalan dengan layanan gRPC diaktifkan, Anda dapat melakukan
panggilan RPC secara terprogram. Untuk pengujian command line, gunakan utilitas grpcurl untuk berkomunikasi dengan layanan emulator. Semua permintaan diformat dalam JSON dan
dikirim melalui teks biasa.
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
Pemetaan konsol Telnet ke layanan gRPC
Tabel referensi berikut memetakan perintah konsol Telnet lama ke layanan dan metode gRPC yang sesuai, yang menunjukkan cara mengotomatiskan interaksi perangkat virtual umum secara terprogram:
| Kategori | Perintah Telnet Lama | Layanan / Metode gRPC |
|---|---|---|
| Status | ping |
EmulatorController/getStatus |
| Status | avd name |
incubating.AvdService/getAvdInfo |
| Status | kill |
EmulatorController/setVmState |
| Status | restart |
EmulatorController/setVmState |
| Daya | power display |
EmulatorController/getBattery |
| Daya | power capacity |
EmulatorController/setBattery |
| Geo Loc | geo fix |
EmulatorController/setGps |
| Sensor | sensor set |
incubating.SensorService/setSensor |
| Biometrik | finger touch |
EmulatorController/sendFingerprint |
| Postur | posture |
EmulatorController/setPosture |
| Postur | physics/fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| Panggilan GSM | gsm call |
EmulatorController/sendPhone |
| Panggilan GSM | phonenumber |
EmulatorController/setPhoneNumber |
| Pengalihan | redir add |
Waterfall/ForwardPort |
| Input | event send EV_KEY |
EmulatorController/sendKey |
| Input | event send EV_ABS |
EmulatorController/sendTouch |
| Media | screenrecord |
incubating.ScreenRecording |
| Rendering | nodraw |
EmulatorController/setDisplayMode |
| Snapshot | avd snapshot list |
SnapshotService/ListSnapshots |
| Snapshot | avd snapshot load/save |
SnapshotService/LoadSnapshot |
Perintah terprogram yang unik untuk gRPC
Antarmuka gRPC menyediakan beberapa kemampuan canggih yang secara fisik tidak mungkin dieksekusi melalui koneksi konsol Telnet lama. Hal ini mencakup streaming logcat langsung, pengambilan atau injeksi audio dua arah, modifikasi GUI host, dan akses shell langsung.
| Layanan / Metode gRPC | Parameter | Kemampuan |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Output logcat sistem tamu Streams |
streamAudio |
{} |
Mengalirkan audio speaker melalui kabel |
injectAudio |
{"audio": "..."} |
Menyuntikkan aliran audio mikrofon |
UiController |
{"theme": "DARK"} |
Mengubah tema jendela host |
Waterfall/Exec |
{"cmd": "ls"} |
Menjalankan perintah shell OS tamu native |
Simulasi dan validasi 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 (level API 23) atau yang lebih tinggi.
Untuk menyimulasikan dan memvalidasi autentikasi sidik jari, ikuti langkah-langkah ini:
Jika Anda belum memiliki ID sidik jari, daftarkan sidik jari baru di emulator dengan memilih Setelan > Keamanan > Sidik jari dan ikuti petunjuk pendaftaran.
Siapkan aplikasi Anda untuk menerima autentikasi sidik jari. Setelah melakukan penyiapan ini, perangkat Anda akan menampilkan layar autentikasi sidik jari.
Saat aplikasi menampilkan layar autentikasi sidik jari, buka konsol dan masukkan perintah
finger touchserta ID sidik jari yang Anda buat. Aplikasi akan melakukan simulasi sentuhan jari.Kemudian, masukkan perintah
finger removeuntuk melakukan simulasi pelepasan jari dari sensor. Aplikasi Anda harus merespons seolah-olah pengguna menyentuh lalu melepaskan jarinya dari sensor sidik jari.