อุปกรณ์เสมือนจริงที่ทำงานแต่ละเครื่องจะมีคอนโซลที่ให้คุณค้นหาและควบคุมสภาพแวดล้อมของอุปกรณ์ที่จำลอง เช่น คุณสามารถใช้คอนโซลเพื่อจัดการ การเปลี่ยนเส้นทางพอร์ต ลักษณะเครือข่าย และเหตุการณ์ทางโทรศัพท์ขณะที่แอป ทํางานในโปรแกรมจำลองได้
คำสั่งต่อไปนี้กำหนดให้คุณต้องมีโปรแกรมจำลองที่ทำงานอยู่แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกใช้โปรแกรมจำลองได้ที่เรียกใช้แอปใน Android Emulator และเริ่มโปรแกรมจำลองจากบรรทัดคำสั่ง
เริ่มและหยุดเซสชันคอนโซล
หากต้องการเข้าถึงคอนโซลและป้อนคำสั่งจากหน้าต่างเทอร์มินัล ให้ใช้ Telnet เพื่อ เชื่อมต่อกับพอร์ตคอนโซลและระบุโทเค็นการตรวจสอบสิทธิ์ ทุกครั้งที่คอนโซลแสดง OK แสดงว่าพร้อมรับคำสั่งแล้ว ไม่มีพรอมต์ที่ เป็นแบบฉบับ
วิธีเชื่อมต่อกับคอนโซลของอุปกรณ์เสมือนที่กำลังทำงาน
เปิดหน้าต่างเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้
telnet localhost console-portชื่อหน้าต่างโปรแกรมจำลองจะแสดงหมายเลขพอร์ตของคอนโซลเมื่อเรียกใช้ใน หน้าต่างแยก แต่จะไม่แสดงเมื่อเรียกใช้ในหน้าต่างเครื่องมือ ตัวอย่างเช่น ชื่อหน้าต่างของโปรแกรมจำลองที่ใช้พอร์ตคอนโซล 5554 อาจเป็น Pixel8_API_34:5554 นอกจากนี้ คำสั่ง
adb devicesจะพิมพ์รายการอุปกรณ์เสมือนที่ทำงานอยู่ และหมายเลขพอร์ตคอนโซลของอุปกรณ์เหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ ค้นหาอุปกรณ์หมายเหตุ: โปรแกรมจำลองจะรอการเชื่อมต่อในพอร์ต 5554 ถึง 5585 และ ยอมรับการเชื่อมต่อจาก localhost เท่านั้น
หลังจากคอนโซลแสดง OK แล้ว ให้ป้อนคำสั่ง
auth auth_tokenก่อนที่จะป้อนคำสั่งคอนโซลได้ คอนโซลของโปรแกรมจำลอง ต้องมีการตรวจสอบสิทธิ์
auth_tokenต้องตรงกับเนื้อหาของไฟล์.emulator_console_auth_tokenในไดเรกทอรีหน้าแรกหากไม่มีไฟล์ดังกล่าว
telnet localhost console-portคำสั่ง จะสร้างไฟล์ที่มีโทเค็นการตรวจสอบสิทธิ์ที่สร้างขึ้นแบบสุ่ม หากต้องการปิดใช้การตรวจสอบสิทธิ์ ให้ลบโทเค็นออกจากไฟล์.emulator_console_auth_tokenหรือสร้างไฟล์ว่างหากไม่มีไฟล์ดังกล่าวหลังจากเชื่อมต่อกับคอนโซลแล้ว ให้ป้อนคำสั่งคอนโซล
ป้อน
help,help commandหรือhelp-verboseเพื่อดูรายการคำสั่งของคอนโซล และดูข้อมูลเกี่ยวกับคำสั่งที่เฉพาะเจาะจงหากต้องการออกจากเซสชันคอนโซล ให้ป้อน
quitหรือexit
ตัวอย่างเซสชัน
$ 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.
คำสั่งยิงแล้วลืม
หากไม่ต้องการให้เซสชันเปิดอยู่ ให้ใช้adb emuทางลัด ซึ่ง
จะเรียกใช้คำสั่งและส่งคืนการควบคุมไปยังเชลล์ที่เรียกใช้ทันที
adb emu command commandParameter
การเรียกใช้ด้วย adb emu จะเชื่อมต่อกับโปรแกรมจำลองที่พร้อมใช้งาน หากมีโปรแกรมจำลองหลายรายการทำงานพร้อมกัน คุณต้องส่งหมายเลขซีเรียลของโปรแกรมจำลองที่เฉพาะเจาะจงซึ่งคุณกำหนดเป้าหมาย
adb -s emulator-serial emu command commandParameter
ข้อมูลอ้างอิงคำสั่งโปรแกรมจำลอง
รายการต่อไปนี้อธิบายคำสั่งคอนโซลของโปรแกรมจำลองพร้อมพารามิเตอร์ และค่า
คำสั่งทั่วไป
avd {stop| start| status| name}ค้นหา ควบคุม และจัดการอุปกรณ์เสมือนจริง ดังนี้- หยุด: หยุดการดำเนินการของอุปกรณ์
- start: เริ่มการดำเนินการของอุปกรณ์
- status: ค้นหาสถานะอุปกรณ์เสมือนจริง ซึ่งอาจเป็นสถานะกำลังทำงานหรือ หยุดทำงาน
- name: ค้นหาชื่ออุปกรณ์เสมือนจริง
avd snapshot {list| save name| load name| delete name}บันทึกและ กู้คืนสถานะอุปกรณ์ในสแนปชอต ดังนี้- list: แสดงรายการสแนปชอตที่บันทึกไว้ทั้งหมด
- save name: บันทึกภาพรวมเป็นชื่อ
- load name: โหลดสแนปชอตที่มีชื่อ
- ลบชื่อ: ลบสแนปชอตที่มีชื่อ
ตัวอย่างต่อไปนี้จะบันทึกสแนปชอตที่มีชื่อว่า
firstactivitysnapshotavd snapshot save firstactivitysnapshotพับ: พับอุปกรณ์เพื่อแสดงการกำหนดค่าหน้าจอขนาดเล็ก หากอุปกรณ์เป็นแบบพับได้และปัจจุบันกางอยู่
กางออก: กางอุปกรณ์เพื่อแสดงการกำหนดค่าหน้าจอที่ใหญ่ขึ้น หากอุปกรณ์เป็นแบบพับได้และพับอยู่
kill: สิ้นสุดอุปกรณ์เสมือนจริง
ping: ตรวจสอบว่าอุปกรณ์เสมือนจริงทำงานอยู่หรือไม่
หมุน: หมุน AVD ทวนเข็มนาฬิกาครั้งละ 45 องศา
ทำให้โปรแกรมจำลองขัดข้อง
ขัดข้อง: ทำให้โปรแกรมจำลองขัดข้องระหว่างการเรียกใช้แอป
crash-on-exit: ทำให้โปรแกรมจำลองขัดข้องเมื่อแอปออก
แท็กแก้ไขข้อบกพร่อง
debug tags ...: เปิดหรือปิดใช้ข้อความแก้ไขข้อบกพร่องจากบางส่วนของ โปรแกรมจำลอง พารามิเตอร์แท็กต้องเป็นค่าจากรายการแท็กแก้ไขข้อบกพร่อง ที่ปรากฏเมื่อคุณเรียกใช้
emulator -help-debug-tagsดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก-help-debug-tagsได้ที่ตารางตัวเลือกที่ใช้กันโดยทั่วไป ตัวอย่างต่อไปนี้จะเปิดใช้แท็กวิทยุdebug radio
การเปลี่ยนเส้นทางพอร์ต
redir list: แสดงรายการการเปลี่ยนเส้นทางพอร์ตปัจจุบัน
redir add protocol:host-port:guest-portเพิ่มการเปลี่ยนเส้นทางพอร์ตใหม่ ดังนี้- protocol: ต้องเป็น tcp หรือ udp
- host-port: หมายเลขพอร์ตที่จะเปิดในโฮสต์
- guest-port: หมายเลขพอร์ตที่จะกำหนดเส้นทางข้อมูลในโปรแกรมจำลอง
redir del protocol:host-portลบการเปลี่ยนเส้นทางพอร์ต- protocol: ต้องเป็น tcp หรือ udp
- host-port: หมายเลขพอร์ตที่จะเปิดในโฮสต์
สถานที่ตั้งทางภูมิศาสตร์
ตั้งค่าตำแหน่งทางภูมิศาสตร์ที่รายงานไปยังแอปที่ทำงานภายในโปรแกรมจำลองโดย ส่งการแก้ไข GPS ไปยังโปรแกรมจำลอง
คุณสามารถออกคำสั่งทางภูมิศาสตร์อย่างใดอย่างหนึ่งต่อไปนี้ได้ทันทีที่อุปกรณ์เสมือนจริง ทำงาน โปรแกรมจำลองจะตั้งค่าตำแหน่งที่คุณป้อนโดยการสร้างผู้ให้บริการตำแหน่งจำลอง
ผู้ให้บริการนี้จะตอบสนองต่อเครื่องมือฟังตำแหน่งที่แอปตั้งค่าไว้และระบุ
ตำแหน่งไปยัง LocationManager แอปใดก็ได้สามารถค้นหา Location Manager เพื่อ
รับการแก้ไข GPS ปัจจุบันสำหรับอุปกรณ์ที่จำลองได้โดยการเรียกใช้
LocationManager.getLastKnownLocation("gps")
geo fix longitude latitude [altitude] [satellites] [velocity]: ส่งข้อมูล GPS อย่างง่ายไปยังโปรแกรมจำลอง ระบุลองจิจูดและละติจูดในรูปแบบทศนิยม องศา ใช้ตัวเลข 1-12 เพื่อระบุจำนวนดาวเทียมที่จะใช้ ในการกำหนดตำแหน่ง และระบุระดับความสูงเป็นเมตรและความเร็วเป็น นอต
geo nmea sentence: ส่งประโยค NMEA 0183 ไปยังอุปกรณ์ที่จำลองราวกับว่าส่งจากโมเด็ม GPS ที่จำลอง เริ่มต้นประโยคด้วย "$GP" ปัจจุบันรองรับเฉพาะประโยค '$GPGGA' และ '$GPRCM' ตัวอย่างต่อไปนี้ คือประโยค GPGGA (ข้อมูลการแก้ไขระบบกำหนดตำแหน่งบนโลก) ที่รับเวลา ตำแหน่ง และข้อมูลการแก้ไขสำหรับเครื่องรับ 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
เหตุการณ์ฮาร์ดแวร์ปลอม
ระบบย่อยเหตุการณ์ฮาร์ดแวร์ของคอนโซลโปรแกรมจำลองช่วยให้คุณจำลองการโต้ตอบทางกายภาพกับอุปกรณ์ได้แทบทุกอย่าง ซึ่งรวมถึงปุ่มจริง การสัมผัส/ท่าทางสัมผัสบนหน้าจอ ปุ่มหมุน อินพุตจอยสติ๊ก และสวิตช์ฮาร์ดแวร์
ประเภทกิจกรรม: แสดงรายการประเภทกิจกรรมปลอมทั้งหมด สำหรับกิจกรรมที่มีรหัส จำนวนรหัสจะแสดงในวงเล็บทางด้านขวา ตัวอย่างเอาต์พุต
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 ...]: ส่งประเภทเหตุการณ์ปลอมอย่างน้อย 1 ประเภท
ประเภทรหัสเหตุการณ์: แสดงรหัสเหตุการณ์สำหรับประเภทเหตุการณ์ปลอมที่ระบุ
event send type[:code]:[value] [...]: ส่งเหตุการณ์ปลอมอย่างน้อย 1 รายการพร้อมรหัสและค่ารหัสที่ไม่บังคับ
EV_KEY - การอ้างอิงรหัสคีย์
EV_KEY ประเภทเหตุการณ์ใช้เพื่อจำลองการกดและปล่อยปุ่ม ตารางต่อไปนี้จะแบ่งรายการรหัสคีย์ที่รองรับจำนวนมากออกเป็นหมวดหมู่เชิงตรรกะ
สำหรับรหัสคีย์แต่ละรหัส การส่งค่า 1 จะจำลองการกด
ในขณะที่ค่า 0 จะจำลองการปล่อย ค่า 2 หมายถึงคีย์
ซ้ำ
ตารางย่อย ก: คีย์ของระบบ Android
| รหัส | คำอธิบาย |
|---|---|
KEY_HOME |
ทริกเกอร์ปุ่มหน้าแรก |
KEY_BACK |
ทริกเกอร์ปุ่มย้อนกลับ |
KEY_MENU |
ปุ่มเมนู (รายการเพิ่มเติม) |
KEY_POWER |
ปุ่มเปิด/ปิด (กด/กดค้าง) |
KEY_VOLUMEUP |
ทริกเกอร์ปุ่มเพิ่มระดับเสียง |
KEY_VOLUMEDOWN |
ทริกเกอร์ปุ่มลดระดับเสียง |
KEY_CAMERA |
ปุ่มชัตเตอร์กล้องจริง |
KEY_FOCUS |
ชัตเตอร์โฟกัสอัตโนมัติของกล้อง |
KEY_SEARCH |
ทริกเกอร์ปุ่มค้นหา |
KEY_SLEEP |
ทริกเกอร์คำสั่งการนอนหลับ |
KEY_WAKEUP |
ทริกเกอร์คำสั่งปลุก |
KEY_NOTIFICATION |
เปิดลิ้นชักการแจ้งเตือน |
KEY_MUTE |
ปิดเสียงเอาต์พุตเสียงของระบบ |
KEY_MICMUTE |
ปิดเสียงอินพุตไมโครโฟน |
KEY_BRIGHTNESSDOWN |
ลดความสว่างของจอแสดงผล |
KEY_BRIGHTNESSUP |
เพิ่มความสว่างของจอแสดงผล |
KEY_PHONE |
เปิดแอปโทรศัพท์เริ่มต้น |
KEY_SEND |
ส่งหรือเริ่มการโทร |
KEY_HEADSETHOOK |
Hook ชุดหูฟัง (รับสาย/วางสาย) |
KEY_SCREEN |
คำสั่งเปิดใช้งานโปรแกรมรักษาหน้าจอ |
KEY_CONFIG |
เมนูระบบการกำหนดค่า |
KEY_SWITCHVIDEOMODE |
เปลี่ยนโหมดวิดีโอของระบบ |
KEY_KBDILLUMTOGGLE |
เปิด/ปิดไฟแบ็กไลต์ของแป้นพิมพ์ |
ตารางย่อย B: การควบคุมสื่อและการเล่น
| รหัส | คำอธิบาย |
|---|---|
KEY_PLAYPAUSE |
สลับสถานะการเล่นและหยุดชั่วคราว |
KEY_PLAY |
เริ่มเล่นสื่อ |
KEY_PAUSECD |
หยุดเล่นซีดีชั่วคราว |
KEY_STOPCD |
หยุดเล่น CD |
KEY_NEXTSONG |
ข้ามไปยังแทร็กถัดไป |
KEY_PREVIOUSSONG |
ข้ามไปยังแทร็กก่อนหน้า |
KEY_REWIND |
กรอกลับแทร็กที่กำลังเล่น |
KEY_FASTFORWARD |
กรอแทร็กที่กำลังเล่นไปข้างหน้า |
KEY_RECORD |
คำสั่งทริกเกอร์การบันทึก |
KEY_SHUFFLE |
เปิด/ปิดการเล่นแบบสุ่ม |
KEY_REPEAT |
สลับการเล่นซ้ำ |
KEY_MEDIA |
ทริกเกอร์แป้นสื่อ |
ตารางย่อย C: คีย์บอร์ดนำทางและคีย์บอร์ดทั่วไป
| รหัส | คำอธิบาย |
|---|---|
KEY_UP |
ทิศทาง D-pad ขึ้น |
KEY_DOWN |
ทิศทาง D-pad ลง |
KEY_LEFT |
ทิศทาง D-pad ซ้าย |
KEY_RIGHT |
ทิศทาง D-pad ขวา |
KEY_PAGEUP |
การนำทางเลื่อนหน้าขึ้น |
KEY_PAGEDOWN |
การนำทางโดยการเลื่อนลง |
KEY_INSERT |
แทรกทริกเกอร์คีย์ |
KEY_DELETE |
ลบทริกเกอร์คีย์ |
KEY_ENTER |
ทริกเกอร์แป้น Enter |
KEY_ESC |
ทริกเกอร์ปุ่ม Escape |
KEY_TAB |
ทริกเกอร์ปุ่ม Tab |
KEY_SPACE |
ทริกเกอร์แป้น Spacebar |
KEY_BACKSPACE |
ทริกเกอร์แป้น Backspace |
KEY_CLEAR |
ล้างบัฟเฟอร์อินพุต |
KEY_CANCEL |
ยกเลิกการดำเนินการที่ใช้งานอยู่ |
KEY_OK |
ยืนยัน/เลือกตกลง |
KEY_SELECT |
เลือกทริกเกอร์รายการ |
KEY_GOTO |
ไปยังสถานที่ที่กำหนด |
KEY_HELP |
เข้าถึงบริบทความช่วยเหลือ |
ตารางย่อย ง: ตัวอักษรและตัวเลขและสัญลักษณ์ปุ่มกด
- ตัวอักษรมาตรฐาน:
KEY_AถึงKEY_Z(รหัส 26 รายการ) - ปุ่มกดตัวเลข:
KEY_1ถึงKEY_0(10 รหัส)
| รหัส | สัญลักษณ์ตัวอักษร |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (แป้นตัวเลข) |
KEY_KPPLUS |
+ (แป้นตัวเลข) |
KEY_KPMINUS |
- (แป้นตัวเลข) |
KEY_KPDOT |
. (แป้นตัวเลข) |
KEY_KPSLASH |
/ (แป้นตัวเลข) |
KEY_KPENTER |
Enter (แป้นตัวเลข) |
KEY_KPEQUAL |
= (แป้นตัวเลข) |
KEY_KPCOMMA |
, (แป้นตัวเลข) |
KEY_KPJPCOMMA |
, (เลย์เอาต์ญี่ปุ่น) |
KEY_KPLEFTPAREN |
( (แป้นตัวเลข) |
KEY_KPRIGHTPAREN |
) (แป้นตัวเลข) |
KEY_KPPLUSMINUS |
± (แป้นตัวเลข) |
ตารางย่อย E: แป้นตัวปรับแต่งและแป้นฟังก์ชัน
- แป้นฟังก์ชันมาตรฐาน:
KEY_F1ถึงKEY_F24(24 รหัส)
| รหัส | คำอธิบาย |
|---|---|
KEY_LEFTSHIFT |
ตัวแก้ไขแป้นพิมพ์ Shift ซ้าย |
KEY_RIGHTSHIFT |
ตัวแก้ไขแป้นพิมพ์ Shift ด้านขวา |
KEY_LEFTCTRL |
ตัวแก้ไขแป้นพิมพ์ Left Control |
KEY_RIGHTCTRL |
แป้นกดร่วมของแป้นพิมพ์ Control ด้านขวา |
KEY_LEFTALT |
แป้นกดร่วมแป้น Alt ซ้าย |
KEY_RIGHTALT |
แป้นกดร่วมแป้น Alt ด้านขวา |
KEY_LEFTMETA |
ปุ่ม Meta/Command ด้านซ้าย |
KEY_RIGHTMETA |
แป้น Meta/Command ด้านขวา |
KEY_CAPSLOCK |
เปิด/ปิดแป้นพิมพ์ Caps Lock |
KEY_NUMLOCK |
เปิด/ปิดแป้นพิมพ์ Num Lock |
KEY_SCROLLLOCK |
ปุ่มเปิด/ปิด Scroll Lock |
KEY_COMPOSE |
ตัวช่วยเขียนตัวอักษร |
KEY_FN |
ปุ่ม FN ของแป้นพิมพ์จริง |
KEY_FN_ESC |
ชุดแป้นฟังก์ชัน |
KEY_FN_1 |
แป้นพิมพ์ลัดฟังก์ชันพิเศษ 1 |
KEY_FN_2 |
แป้นพิมพ์ลัดฟังก์ชันพิเศษ 2 |
KEY_FN_D |
แป้นพิมพ์ลัดที่มีฟังก์ชันพิเศษ |
KEY_FN_E |
แป้นพิมพ์ลัดฟังก์ชันพิเศษ E |
KEY_FN_F |
แป้นพิมพ์ลัดที่มีฟังก์ชันพิเศษ F |
KEY_FN_S |
แป้นพิมพ์ลัดที่มีฟังก์ชันพิเศษ S |
KEY_FN_B |
แป้นพิมพ์ลัดที่มีฟังก์ชันพิเศษ B |
ตารางย่อย F: เกมแพดและจอยสติ๊ก
| รหัส | คำอธิบาย |
|---|---|
BTN_A / BTN_B / BTN_C |
ปุ่มด้านหน้าของตัวควบคุม A/B/C |
BTN_X / BTN_Y / BTN_Z |
ปุ่มด้านหน้าของคอนโทรลเลอร์ X/Y/Z |
BTN_START |
ปุ่มเมนูเริ่มของเกมแพด |
BTN_SELECT |
ปุ่มเลือกของเกมแพด |
BTN_MODE |
สวิตช์โหมดคอนโทรลเลอร์ |
BTN_TL / BTN_TR |
ปุ่มกันชนซ้าย / ขวา |
BTN_TL2 / BTN_TR2 |
ทริกเกอร์อนาล็อกซ้าย / ขวา |
BTN_THUMBL / BTN_THUMBR |
คลิกปุ่มแท่งซ้าย / ขวา |
BTN_DPAD_UP |
ทริกเกอร์ D-pad ขึ้นของเกมแพด |
BTN_DPAD_DOWN |
ทริกเกอร์ D-pad ลงของเกมแพด |
BTN_DPAD_LEFT |
ทริกเกอร์ D-pad ซ้ายของเกมแพด |
BTN_DPAD_RIGHT |
ทริกเกอร์ขวาของ D-pad ในเกมแพด |
BTN_THUMB |
ทริกเกอร์หลักของจอยสติ๊ก |
BTN_TOP / BTN_TOP2 |
ปุ่มด้านบนของจอยสติ๊ก |
BTN_PINKIE |
ทริกเกอร์ปุ่มนิ้วก้อยของจอยสติ๊ก |
BTN_BASE ถึง _BASE6 |
ปุ่มฐานแพลตฟอร์มจอยสติ๊ก |
BTN_DEAD |
แฟล็กเดดโซนของเกมแพดที่ไม่ได้ใช้งาน |
BTN_TRIGGER |
ทริกเกอร์มือของจอยสติ๊กจริง |
BTN_JOYSTICK |
รหัสอินพุตจอยสติ๊กทั่วไป |
ตารางย่อย G: การป้อนข้อมูลด้วยเมาส์ การสัมผัส และสไตลัส
| รหัส | คำอธิบาย |
|---|---|
BTN_MOUSE |
เหตุการณ์เคอร์เซอร์เมาส์ทั่วไป |
BTN_LEFT |
คลิกปุ่มซ้ายของเมาส์ |
BTN_RIGHT |
คลิกปุ่มขวาของเมาส์ |
BTN_MIDDLE |
คลิกปุ่มลูกกลิ้งตรงกลาง |
BTN_SIDE |
ทริกเกอร์ปุ่มด้านข้างสำหรับการนำทาง |
BTN_EXTRA |
ทริกเกอร์ปุ่มเมาส์เพิ่มเติม |
BTN_FORWARD |
คลิกการนำทางไปข้างหน้าของเบราว์เซอร์ |
BTN_BACK |
การคลิกการนำทางย้อนกลับของเบราว์เซอร์ |
BTN_TASK |
ปุ่มสลับงานของระบบ |
BTN_TOUCH |
ตรวจพบการสัมผัสทางกายภาพบนหน้าจอ |
BTN_STYLUS |
ความใกล้เคียงของปากกาสไตลัสที่ใช้งานอยู่ |
BTN_STYLUS2 |
สวิตช์กระบอกรองบนสไตลัส |
BTN_TOOL_PEN |
ตัวระบุเครื่องมือปากกาสไตลัส |
BTN_TOOL_RUBBER |
ตัวระบุเครื่องมือยางลบของสไตลัส |
BTN_TOOL_BRUSH |
ตัวระบุเครื่องมือแปรงของ Painter |
BTN_TOOL_PENCIL |
ตัวระบุเครื่องมือดินสอร่าง |
BTN_TOOL_AIRBRUSH |
ตัวระบุเครื่องมือสีแอร์บรัช |
BTN_TOOL_FINGER |
การสัมผัสหน้าจอด้วยนิ้ว |
BTN_TOOL_MOUSE |
ตัวระบุเครื่องมือเมาส์ภายนอก |
BTN_TOOL_LENS |
เครื่องมือเลนส์ขยายแบบออปติคัล |
BTN_TOOL_DOUBLETAP |
Flag ความเร็วในการแตะสองครั้งด้วยท่าทางสัมผัส |
BTN_TOOL_TRIPLETAP |
Flag ความเร็วในการแตะสามครั้งด้วยท่าทางสัมผัส |
ตารางย่อย H: แป้นพิมพ์ลัดของแอปพลิเคชัน
| รหัส | การกระทําเป้าหมาย |
|---|---|
KEY_WWW |
เปิดเว็บเบราว์เซอร์เริ่มต้น |
KEY_MAIL |
เปิดโปรแกรมรับส่งอีเมลเริ่มต้น |
KEY_BOOKMARKS |
เปิดรายการบุ๊กมาร์กของเบราว์เซอร์ |
KEY_CALC |
เปิดยูทิลิตีเครื่องคิดเลข |
KEY_FILE |
เปิดเครื่องมือสำรวจไฟล์ในเครื่อง |
KEY_EDIT |
ทริกเกอร์การแก้ไขเอกสาร |
KEY_NEW |
สร้างทริกเกอร์ใหม่ในเอกสาร |
KEY_OPEN |
ทริกเกอร์การเปิดเอกสาร |
KEY_SAVE |
ทริกเกอร์งานบันทึกไฟล์ |
KEY_CLOSE |
ทริกเกอร์งานปิดไฟล์ |
KEY_PRINT |
ทริกเกอร์งานพิมพ์ไฟล์ |
KEY_COPY |
การดำเนินการคัดลอกบัฟเฟอร์คลิปบอร์ด |
KEY_PASTE |
การดำเนินการแทรกบัฟเฟอร์คลิปบอร์ด |
KEY_CUT |
การดำเนินการตัดบัฟเฟอร์คลิปบอร์ด |
KEY_UNDO |
การดำเนินการเลิกทำบัฟเฟอร์คลิปบอร์ด |
KEY_REDO |
การดำเนินการทำซ้ำในบัฟเฟอร์คลิปบอร์ด |
KEY_CANCEL |
ทริกเกอร์กระบวนการยกเลิกบัฟเฟอร์ |
KEY_FIND |
ยูทิลิตีการค้นหาเอกสาร |
KEY_REFRESH |
ยูทิลิตีการรีเฟรชเอกสาร |
KEY_EXIT |
ยูทิลิตีปิดเอกสาร |
KEY_DOCUMENTS |
เปิดตัวพอร์ทัลเอกสารของระบบ |
KEY_HOMEPAGE |
เปิดเบราว์เซอร์หน้าแรก |
KEY_FAVORITES |
เปิดพอร์ทัลรายการโปรดของเบราว์เซอร์ |
KEY_CHAT |
เปิดโปรแกรมรับส่งข้อความด่วน |
KEY_EMAIL |
ทริกเกอร์การเปิดตัวอีเมลอื่น |
KEY_FINANCE |
เปิดยูทิลิตีหุ้น/การเงิน |
KEY_SPORT |
เปิดยูทิลิตีการติดตามกีฬา |
KEY_SHOP |
เปิดพอร์ทัลการช็อปปิ้งดิจิทัล |
KEY_PLAYER |
เปิดโปรแกรมเล่นสื่อหลัก |
KEY_MP3 |
เปิดเครื่องเล่น MP3 หลัก |
KEY_TEXT |
เปิดโปรแกรมแก้ไขข้อความเริ่มต้น |
KEY_LIST |
เปิดยูทิลิตีรายการตรวจสอบ |
KEY_MEMO |
เปิดยูทิลิตี Notepad / Memo |
KEY_CALENDAR |
เปิดพอร์ทัลปฏิทิน / กำหนดการ |
KEY_DIRECTORY |
เปิดไดเรกทอรีที่อยู่ของระบบ |
KEY_COMPUTER |
เปิดเครื่องมือสำรวจข้อกำหนด |
KEY_TV / KEY_TV2 |
เปิดพอร์ทัลโทรทัศน์ |
KEY_RADIO |
เปิดยูทิลิตีวิทยุ |
KEY_CD / KEY_DVD |
เปิดใช้งานโปรแกรมอ่านไดรฟ์ออปติคัล |
KEY_AUDIO / KEY_VIDEO |
เข้าถึงข้อกำหนดของสื่อ |
KEY_TUNER |
กำหนดค่าเครื่องรับ/จูนเนอร์ |
KEY_SAT / KEY_SAT2 |
กำหนดค่าฟีดดาวเทียม |
KEY_TAPE |
เล่นเทปมีเดียเด็ค |
KEY_VCR |
เล่นฟีดเครื่องเล่น VCR |
KEY_VCR2 |
เล่นฟีดเพลเยอร์ VCR 2 |
KEY_AUX |
อินพุตพอร์ตสื่อเสริม |
KEY_SETUP |
เมนูการกำหนดค่าการตั้งค่า |
KEY_PROG1 ถึง _PROG4 |
คีย์โปรแกรมที่ผู้ใช้กำหนด |
KEY_ZOOM |
สลับการซูมวิวพอร์ต |
KEY_MODE |
เลือกโหมดวิวพอร์ต |
KEY_KEYBOARD |
แสดง/ซ่อนแป้นพิมพ์เสมือน |
KEY_LANGUAGE |
เปลี่ยนภาษาของแทร็กเสียง |
KEY_TITLE |
เปิดตัวเลือกชื่อสื่อ |
KEY_SUBTITLE |
สลับอินเทอร์เฟซคำบรรยาย |
KEY_ANGLE |
เปลี่ยนมุมกล้องวิดีโอ |
KEY_EPG |
เปิดคู่มือรายการทีวีอิเล็กทรอนิกส์ |
KEY_PVR |
เปิดเครื่องบันทึกวิดีโอส่วนตัว |
KEY_MHP |
เปิดแพลตฟอร์มหน้าแรกของมัลติมีเดีย |
KEY_CHANNEL |
เปิดช่องตัวรับสัญญาณทีวี |
KEY_CHANNELUP |
ปรับช่องทีวีขึ้น |
KEY_CHANNELDOWN |
ปรับช่องทีวีลง |
KEY_RED |
ปุ่มโต้ตอบสีแดง |
KEY_GREEN |
ปุ่มแบบอินเทอร์แอกทีฟสีเขียว |
KEY_YELLOW |
ปุ่มโต้ตอบสีเหลือง |
KEY_BLUE |
ปุ่มโต้ตอบสีน้ำเงิน |
KEY_FIRST |
เลือกตัวเลือกสินค้าแรก |
KEY_LAST |
เลือกตัวเลือกรายการสุดท้าย |
KEY_NEXT |
เลือกตัวเลือกแทร็กถัดไป |
KEY_PREVIOUS |
เลือกตัวเลือกแทร็กก่อนหน้า |
KEY_RESTART |
เริ่มลูปแทร็กสื่อใหม่ |
KEY_SLOW |
ตัวเลือกการเล่นแบบสโลว์โมชัน |
KEY_AB |
วนซ้ำลำดับการเล่นซ้ำ A-B |
KEY_PLAYCD |
คำสั่งเล่นเด็ค CD |
KEY_PAUSECD |
คำสั่งหยุดชั่วคราวของเครื่องเล่นซีดี |
KEY_STOPCD |
คำสั่งหยุดเครื่องเล่นซีดี |
KEY_DIGITS |
คำสั่งป้อนข้อมูลด้วยปุ่มกดดิจิทัล |
KEY_TEEN |
ตัวเลือกมูลค่าสำหรับวัยรุ่นของ Keypad |
KEY_TWEN |
ตัวเลือกค่า twen ของปุ่มกด |
KEY_DEL_EOL |
ลบไปยังบัฟเฟอร์ท้ายบรรทัด |
KEY_DEL_EOS |
ลบจนถึงสิ้นสุดบัฟเฟอร์หน้าจอ |
KEY_INS_LINE |
แทรกบัฟเฟอร์บรรทัดใหม่ |
KEY_BRL_DOT1 ถึง _DOT8 |
การป้อนข้อมูลด้วยปุ่มของจอแสดงผลอักษรเบรลล์ |
KEY_VOICECOMMAND |
เปิดแอปผู้ช่วยแบบเสียง |
KEY_SELECTIVE_SCREEN |
เรียกใช้การตัดหน้าจอระดับภูมิภาค |
KEY_BATTERY |
ค้นหาการแจ้งเตือนแบตเตอรี่ |
KEY_STAR / KEY_SHARP |
สัญลักษณ์แป้นกดโทรศัพท์ |
KEY_PLUS |
ปุ่มกดโทรศัพท์พร้อมสัญลักษณ์บวก |
KEY_INFO |
แสดงการวางซ้อนแผงข้อมูล |
KEY_TIME |
แสดงเวลาปัจจุบัน |
KEY_VENDOR |
ข้อกำหนดของผู้ให้บริการการค้นหา |
KEY_ARCHIVE |
เปิดยูทิลิตีการเก็บถาวรในเครื่อง |
KEY_PROGRAM |
กำหนดค่าพารามิเตอร์โปรแกรม |
KEY_POWER2 |
ทริกเกอร์แหล่งจ่ายไฟสำรอง |
EV_ABS - เหตุการณ์การเคลื่อนไหวสัมบูรณ์
EV_ABSประเภทเหตุการณ์มีความสําคัญอย่างยิ่งต่อการจําลองการแตะที่แม่นยํา ท่าทางสัมผัสแบบลากและวาง
การบีบนิ้วแบบมัลติทัช และการปรับจอยสติ๊ก พิกัดสัมบูรณ์
ด้านล่างจะแมปกับความละเอียดของหน้าจอจริงโดยตรง
| รหัส | ช่วงพิกัด | คำอธิบาย |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 หรือ ≥0 |
รหัสติดตาม -1 สิ้นสุดการแตะ |
ABS_MT_POSITION_X |
0 ถึง 1767 |
พิกัด X (Pixel Fold) |
ABS_MT_POSITION_Y |
0 ถึง 2207 |
พิกัด Y (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
พิกเซล | ความกว้างของแกนหลักของพื้นที่สัมผัส |
ABS_MT_TOUCH_MINOR |
พิกเซล | ความกว้างของแกนรองของพื้นที่สัมผัส |
ABS_MT_WIDTH_MAJOR |
พิกเซล | ความกว้างของแกนหลักของเครื่องมือ |
ABS_MT_WIDTH_MINOR |
พิกเซล | ความกว้างแกนรองของเครื่องมือ |
ABS_MT_ORIENTATION |
0 ถึง 255 |
มุมการวางแนวของจุดสัมผัส |
ABS_MT_PRESSURE |
0 ถึง 255 |
ขนาดแรงสัมผัส |
ABS_MT_DISTANCE |
มม. | ระยะห่างจากหน้าจอเมื่อวางเมาส์ |
ABS_MT_TOOL_TYPE |
0 ถึง 2 |
0=นิ้ว 1=ปากกา 2=ดินสอ |
ABS_MT_BLOB_ID |
จำนวนเต็ม | ตัวระบุ Blob ของรายชื่อติดต่อ |
ABS_MT_TOOL_X |
พิกเซล | พิกัดตำแหน่ง X ของเครื่องมือ |
ABS_MT_TOOL_Y |
พิกเซล | พิกัดตำแหน่ง Y ของเครื่องมือ |
ABS_MT_SLOT |
0 ถึง N |
สล็อตที่ใช้งานอยู่ (โปรโตคอล B) |
ABS_X / _Y / _Z |
แอนะล็อก | แกนพิกัดของจอยสติ๊ก |
ABS_RX / _RY / _RZ |
แอนะล็อก | แกนการหมุนของจอยสติ๊ก |
ABS_THROTTLE / _BRAKE |
แอนะล็อก | แป้นเหยียบและระบบควบคุมการบังคับเลี้ยว |
ABS_HAT0X / _HAT0Y |
-1 / 0 / 1 |
สวิตช์หมวก D-pad และ POV |
ABS_PRESSURE |
0 ถึง 255 |
ระดับแรงของสไตลัส / เคอร์เซอร์ |
ABS_DISTANCE |
มม. | ระยะการวางเมาส์ (ปากกาสไตลัส) |
ABS_TILT_X / _TILT_Y |
องศา | มุมเอียงของสไตลัส |
ABS_VOLUME |
แอนะล็อก | ระดับเสียงของคอนโทรลเลอร์ |
การโต้ตอบด้วยการสัมผัสใน Android ขับเคลื่อนด้วยโปรโตคอลมัลติทัช (MT) โปรแกรมจำลองรุ่นใหม่ใช้ทั้งโปรโตคอล A (ไม่เก็บสถานะ ส่งแพ็กเก็ตรายชื่อติดต่อโดยคั่นด้วยเครื่องหมายการซิงค์) และโปรโตคอล B (เก็บสถานะ กำหนดรายชื่อติดต่อให้กับช่องติดตามเฉพาะ) โปรโตคอล B ช่วยให้ติดตามการแตะพร้อมกันหลายครั้งได้อย่างมีประสิทธิภาพสำหรับท่าทางสัมผัส เช่น การบีบนิ้วเพื่อซูม
EV_REL และ EV_SW - สวิตช์การเคลื่อนไหวและฮาร์ดแวร์
EV_REL หมวดหมู่เหตุการณ์จะจัดการการเปลี่ยนแปลงพอยน์เตอร์หรือพิกัดที่สัมพันธ์กัน
ซึ่งส่วนใหญ่ใช้เพื่อจำลองการเคลื่อนไหวของเมาส์ภายนอกหรือล้อเลื่อน
EV_SW หมวดหมู่เหตุการณ์จะจัดการสวิตช์ของอุปกรณ์จริง เช่น โทรศัพท์จอพับหรือแท็บเล็ตพับอยู่หรือไม่ หรือมีการเสียบฮาร์ดแวร์เสียงภายนอกหรือไม่
| รหัส | ค่า | คำอธิบาย |
|---|---|---|
REL_X |
เดลต้า | การเคลื่อนที่ของเคอร์เซอร์ในแนวนอน |
REL_Y |
เดลต้า | การเคลื่อนที่ของเคอร์เซอร์ในแนวตั้ง |
SW_LID |
0/1 |
สถานะฝาแล็ปท็อป (0=เปิด, 1=ปิด) |
SW_TABLET_MODE |
0/1 |
สถานะโหมดแท็บเล็ต (0=ปิด, 1=เปิด) |
SW_HEADPHONE_INSERT |
0/1 |
สถานะช่องเสียบหูฟัง (0=ไม่อยู่, 1=อยู่) |
SW_MICROPHONE_INSERT |
0/1 |
สถานะช่องเสียบไมโครโฟน (0=ออก, 1=เข้า) |
ไวยากรณ์การส่งคำสั่ง
หากต้องการส่งรหัสเหล่านี้ ให้จัดรูปแบบคำสั่งคอนโซลโดยใช้ประเภท รหัส และ
ค่าที่คั่นด้วยเครื่องหมายโคลอน คุณจัดคิวการเปลี่ยนแปลงพิกัดหลายรายการในสตริงเดียวได้ ที่สำคัญคือต่อเครื่องหมายการซิงค์สุดท้าย
(EV_SYN:0:0) เสมอเพื่อระบุว่าเฟรมเวิร์กของโปรแกรมจำลองควรจัดกลุ่มและ
ประมวลผลอินพุตเหล่านี้ร่วมกัน
ตัวอย่างการเขียนสคริปต์เหตุการณ์และท่าทางสัมผัส
เนื่องจาก Telnet อนุญาตให้ส่งพารามิเตอร์แบบหลายส่วน คุณจึงจำลองลำดับท่าทางสัมผัสที่สมจริงได้ ด้านล่างนี้คือโครงสร้างสคริปต์เหตุการณ์ดิบสำหรับการทำงานอัตโนมัติ ท่าทางสัมผัสจากคอนโซลโฮสต์
จำลองการแตะหน้าจอ
หากต้องการแตะหน้าจออย่างหมดจดที่พิกัดเป้าหมาย ให้กำหนดรหัสติดตาม ระบุพิกัด X และ Y บนหน้าจอ จำลองการสัมผัส ซิงค์ แล้วปล่อย
# 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
จำลองการเลื่อนแนวตั้ง (ปัด)
หากต้องการดำเนินการท่าทางสัมผัสการปัดเพื่อเลื่อน ให้กดค้างไว้ที่พิกัดเริ่มต้น ส่งเฟรมพิกัดการเคลื่อนไหวระดับกลาง และปล่อยที่จุดสิ้นสุด
# 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
จำลองท่าทางสัมผัสสำหรับการบีบเพื่อซูม
หากต้องการทริกเกอร์การซูม 2 นิ้ว ให้ใช้สล็อต MT ที่ใช้งานอยู่ (0 และ 1) เพื่อติดตามและ ประสานงานพิกัดการแตะพร้อมกัน 2 รายการที่เคลื่อนที่ออกจากกัน
# 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
จำลองการสลับการเชื่อมต่อหูฟัง
จำลองการเสียบหรือถอดช่องเสียบหูฟังเพื่อทดสอบสวิตช์การกำหนดเส้นทางเสียง ค่า 1 แสดงถึงการเสียบแจ็ค และ 0 คือการถอดหูฟัง
# 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
การค้นหารหัสเหตุการณ์ของคอนโซลจากอุปกรณ์จริง
หากต้องการดูไวยากรณ์เหตุการณ์ที่แน่นอนสำหรับท่าทางสัมผัสการดำเนินการหรือปุ่มที่กำหนดเอง
ให้เชื่อมต่อผ่าน adb shell แล้วเรียกใช้geteventยูทิลิตีการวินิจฉัย ขณะที่คุณ
โต้ตอบกับ GUI ของโปรแกรมจำลอง คอนโซลจะพิมพ์รหัส ประเภท
และตำแหน่งของเหตุการณ์ที่แน่นอน
# 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
- ข้อความ SMS ของเหตุการณ์: ส่งสตริงของอักขระที่จำลองการกดแป้น ข้อความต้องเป็นสตริง UTF-8 ระบบจะแมปโพสต์ Unicode แบบย้อนกลับตามแป้นพิมพ์ของอุปกรณ์ปัจจุบัน และจะทิ้งอักขระที่ไม่รองรับโดยไม่แจ้งให้ทราบ
การควบคุมสถานะพลังงาน
การแสดงพลังงาน: แสดงสถานะแบตเตอรี่และที่ชาร์จ
power ac {on| off}: ตั้งค่าสถานะการชาร์จ AC เป็นเปิดหรือปิด
สถานะพลังงาน {unknown| charging| discharging| not-charging| full}: เปลี่ยน สถานะแบตเตอรี่ตามที่ระบุ
power present {true| false}: ตั้งค่าสถานะการมีอยู่ของแบตเตอรี่
power health {unknown| good| overheat| dead| overvoltage| failure}: ตั้งค่าสถานะประสิทธิภาพแบตเตอรี่
power capacity percent: ตั้งค่าสถานะความจุแบตเตอรี่ที่เหลือเป็นเปอร์เซ็นต์ ตั้งแต่ 0 ถึง 100
สถานะการเชื่อมต่อเครือข่าย (อีเทอร์เน็ตและเครือข่ายมือถือเท่านั้น)
สถานะเครือข่าย: ตรวจสอบสถานะเครือข่าย ความล่าช้าปัจจุบัน และลักษณะความเร็ว
network delay latencyเปลี่ยนเวลาในการตอบสนองของเครือข่ายที่จำลองโปรแกรมจำลองช่วยให้คุณจำลองระดับเวลาในการตอบสนองของเครือข่ายต่างๆ เพื่อให้คุณ ทดสอบแอปในสภาพแวดล้อมที่ใกล้เคียงกับสภาพการทำงานจริงมากขึ้น คุณ ตั้งค่าระดับหรือช่วงเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง หรือใช้ คอนโซลเพื่อเปลี่ยนเวลาในการตอบสนองขณะที่แอปทำงานในโปรแกรมจำลองได้
รูปแบบของเวลาในการตอบสนองของเครือข่ายคือรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลขเป็นมิลลิวินาที)
รูปแบบเวลาในการตอบสนองของเครือข่าย:
gprs: GPRS ซึ่งใช้ช่วงเวลาในการตอบสนองขั้นต่ำ 150 และสูงสุด 550
EDGE: EDGE/EGPRS ซึ่งใช้ช่วงเวลาในการตอบสนองขั้นต่ำ 80 และสูงสุด 400
umts: UMTS/3G ซึ่งใช้ช่วงเวลาในการตอบสนองต่ำสุด 35 และสูงสุด 200
ไม่มี: ไม่มีเวลาในการตอบสนอง
num: จำลองเวลาในการตอบสนองที่ระบุเป็นมิลลิวินาที
min:max: จำลองช่วงเวลาในการตอบสนองที่ระบุ
หากต้องการตั้งค่าเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้
-netdelayตัวเลือกโปรแกรมจำลองที่มีค่าเวลาในการตอบสนองที่รองรับ ตัวอย่างemulator -netdelay gprs emulator -netdelay 40,100หากต้องการเปลี่ยนแปลงความล่าช้าของเครือข่ายขณะที่โปรแกรมจำลองกำลังทำงาน ให้เชื่อมต่อกับ คอนโซลและใช้คำสั่ง
network delaynetwork delay gprs network delay 40 100network speed speedโปรแกรมจำลองช่วยให้คุณจำลองอัตราการโอนข้อมูลในเครือข่ายต่างๆ ได้ คุณตั้งค่า อัตราหรือช่วงการโอนได้เมื่อเริ่มต้นโปรแกรมจำลอง หรือจะใช้คอนโซลเพื่อ เปลี่ยนอัตราขณะที่แอปทำงานในโปรแกรมจำลองก็ได้รูปแบบของความเร็วเครือข่ายคือรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลขคือ กิโลบิต/วินาที)
รูปแบบความเร็วเครือข่าย:
gsm: GSM/CSD ซึ่งใช้ความเร็ว 14.4 ขึ้นและ 14.4 ลง
hscsd: HSCSD ซึ่งใช้ความเร็ว 14.4 ขึ้นและ 43.2 ลง
gprs: GPRS ซึ่งใช้ความเร็ว 40.0 ขึ้นและ 80.0 ลง
EDGE: EDGE/EGPRS ซึ่งใช้ความเร็ว 118.4 ขึ้นและ 236.8 ลง
umts: UMTS/3G ซึ่งใช้ความเร็ว 128.0 ขึ้นและ 1920 ลง
hsdpa: HSDPA ซึ่งใช้ความเร็ว 348.0 ขึ้นและ 14,400.0 ลง
lte: LTE ซึ่งใช้ความเร็วในการอัปโหลด 58,000 และความเร็วในการดาวน์โหลด 173,000
evdo: EVDO ซึ่งใช้ความเร็วในการอัปโหลด 75,000 และความเร็วในการดาวน์โหลด 280,000
เต็ม: ความเร็วไม่จำกัด แต่ขึ้นอยู่กับความเร็วในการเชื่อมต่อของคอมพิวเตอร์
num: ตั้งค่าอัตราที่แน่นอนเป็นกิโลบิต/วินาทีที่ใช้สำหรับการอัปโหลดและดาวน์โหลด
up:down: กำหนดอัตราที่แน่นอนเป็นกิโลบิต/วินาทีสำหรับการอัปโหลดและดาวน์โหลด แยกกัน
หากต้องการตั้งค่าความเร็วเครือข่ายเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้ตัวเลือก
-netspeedemulator ตัวอย่างemulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26หากต้องการเปลี่ยนความเร็วเครือข่ายขณะที่โปรแกรมจำลองทำงานอยู่ ให้เชื่อมต่อกับ คอนโซลแล้วใช้คำสั่ง
network speednetwork speed 14.4 80network capture {start| stop} fileส่งแพ็กเก็ตไปยังไฟล์ รายการต่อไปนี้อธิบายพารามิเตอร์และ ค่าพารามิเตอร์หมายเหตุ: ตั้งแต่โปรแกรมจำลองของ Android 36.5 เป็นต้นไป netsim จะจัดการการรับส่งข้อมูลการเชื่อมต่อ Wi-Fi โดยค่าเริ่มต้น คำสั่งคอนโซลการจับภาพเครือข่าย จะจับภาพเฉพาะการรับส่งข้อมูลผ่านเครือข่ายมือถือ/WAN แบบเดิมที่กำหนดเส้นทางผ่านสแต็ก QEMU slirp หากต้องการบันทึกแพ็กเก็ต Wi-Fi, บลูทูธ หรือเครือข่ายขั้นสูงในโปรแกรมจำลองเวอร์ชันใหม่ โปรดดูบันทึกการจราจรของข้อมูลในเครือข่ายในคู่มือการเชื่อมต่อเครือข่ายขั้นสูงของโปรแกรมจำลอง
start file: เริ่มบันทึกแพ็กเก็ตเครือข่าย เพื่อความปลอดภัย ไฟล์ต้องเป็นชื่อไฟล์เปล่า (ไม่มีตัวคั่นเส้นทาง เช่น
/และไม่มี..) ระบบจะบันทึกไฟล์การดักจับแพ็กเก็ตไว้ในไดเรกทอรีเนื้อหาของ AVD ในโฟลเดอร์console_out/(เช่น~/.android/avd/avd_name.avd/console_out/file)stop file: หยุดส่งแพ็กเก็ตไปยังไฟล์ที่ระบุ
การจำลองโทรศัพท์
โปรแกรมจำลอง Android มีโมเด็ม GSM และ CDMA จำลองของตัวเองที่ช่วยให้คุณ จำลองฟังก์ชันโทรศัพท์ในโปรแกรมจำลองได้ เช่น GSM ช่วยให้คุณ จำลองการโทรเข้าและสร้างและสิ้นสุดการเชื่อมต่อข้อมูลได้ เมื่อใช้ CDMA คุณจะต้องระบุแหล่งที่มาของการสมัครใช้บริการและรายการโรมมิ่งที่ต้องการ ระบบ Android จะจัดการการโทรจำลองเหมือนกับการโทรจริงทุกประการ โปรแกรมจำลองไม่รองรับเสียงการโทร
gsm {call| accept| cancel| busy} phonenumberพารามิเตอร์ gsm มีดังนี้- call: จำลองการโทรเข้าจากหมายเลขโทรศัพท์
- accept: รับสายเรียกเข้าจากหมายเลขโทรศัพท์และเปลี่ยนสถานะการโทร เป็น "ใช้งานอยู่" คุณจะเปลี่ยนสถานะการโทรเป็น "ใช้งานอยู่" ได้ก็ต่อเมื่อสถานะปัจจุบันเป็น "รอสาย" หรือ "พักสาย"
- cancel: สิ้นสุดการโทรเข้าจากหรือการโทรออกไปยังหมายเลขโทรศัพท์ to phonenumber
- ไม่ว่าง: ปิดสายโทรออกไปยังหมายเลขโทรศัพท์และเปลี่ยนสถานะการโทร เป็นไม่ว่าง คุณจะเปลี่ยนสถานะการโทรเป็นไม่ว่างได้ก็ต่อเมื่อสถานะปัจจุบันเป็นรอสายเท่านั้น
gsm {data| voice} stateคำสั่งสถานะข้อมูลจะเปลี่ยนสถานะของการเชื่อมต่อข้อมูล GPRS และ คำสั่งสถานะเสียงจะเปลี่ยนสถานะของการเชื่อมต่อเสียง GPRS ดังนี้- ไม่ได้ลงทะเบียน: ไม่มีเครือข่ายที่ใช้งานได้
- ในประเทศ: อยู่ในเครือข่าย LAN ไม่ใช่โรมมิ่ง
- โรมมิ่ง: อยู่ในเครือข่ายโรมมิ่ง
- กำลังค้นหา: กำลังค้นหาเครือข่าย
- ปฏิเสธ: โทรฉุกเฉินเท่านั้น
- off: เหมือนกับที่ไม่ได้ลงทะเบียน
- ใน: เหมือนกับที่บ้าน
gsm hold: เปลี่ยนสถานะการโทรเป็นการพักสาย คุณเปลี่ยนสถานะการโทรเป็นพักสายได้ก็ต่อเมื่อสถานะปัจจุบันเป็น "ใช้งานอยู่" หรือ "รอสาย" เท่านั้น
รายการ gsm: แสดงรายการสายโทรเข้าและโทรออกทั้งหมด รวมถึงสถานะของสาย
สถานะ GSM: รายงานสถานะเสียง/ข้อมูล GSM ปัจจุบัน ค่าคือค่าที่ อธิบายไว้สำหรับคำสั่งเสียงและข้อมูล
gsm signal {rssi| ber}เปลี่ยนความแรงของสัญญาณ (rssi) และอัตราบิตผิดพลาด (ber) ที่รายงานในการอัปเดต อีก 15 วินาทีข้างหน้า รายการต่อไปนี้อธิบายพารามิเตอร์และค่าของพารามิเตอร์- rssi: ช่วงคือ 0 ถึง 31 และ 99 สำหรับไม่ทราบ
- ber: ช่วงคือ 0 ถึง 7 และ 99 สำหรับไม่ทราบ
gsm signal-profile num: ตั้งค่าโปรไฟล์ความแรงของสัญญาณ num คือตัวเลข ตั้งแต่ 0 ถึง 4
cdma ssource sourceตั้งค่าแหล่งที่มาของการสมัครใช้บริการ CDMA ปัจจุบัน โดยที่แหล่งที่มาคือรายการที่อนุญาตตามเครือข่ายซึ่งมีผู้สมัครใช้บริการของผู้ให้บริการ CDMA และค่าของผู้สมัครใช้บริการเหล่านั้น ดังนี้- nv: อ่านการสมัครใช้บริการจาก RAM แบบไม่ลบเลือน
- ruim: อ่านการสมัครใช้บริการจาก Removable User Identity Module (RUIM)
cdma prl_version version: แสดงรายการโรมมิ่งที่ต้องการ (PRL) เวอร์ชันปัจจุบัน หมายเลขเวอร์ชันใช้สำหรับฐานข้อมูล PRL ที่มีข้อมูล ที่ใช้ในระหว่างกระบวนการเลือกและรับระบบ
จัดการเซ็นเซอร์ในโปรแกรมจำลอง
คำสั่งเหล่านี้เกี่ยวข้องกับเซ็นเซอร์ที่พร้อมใช้งานใน AVD นอกเหนือจากการใช้คำสั่งเซ็นเซอร์แล้ว คุณยังดูและปรับการตั้งค่าในโปรแกรมจำลองได้ใน หน้าจอเซ็นเซอร์เสมือนในแท็บมาตรความเร่งและเซ็นเซอร์เพิ่มเติม
สถานะเซ็นเซอร์: แสดงเซ็นเซอร์ทั้งหมดและสถานะของเซ็นเซอร์
sensor get sensor-name: รับการตั้งค่าสำหรับ sensor-name ตัวอย่างต่อไปนี้ จะรับค่าสำหรับเซ็นเซอร์วัดความเร่ง
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348ค่าความเร่งที่คั่นด้วยโคลอน(:) หมายถึงพิกัด x, y และ z สำหรับเซ็นเซอร์เสมือน
sensor set sensor-name value-x:value-y:value-z: ตั้งค่าสำหรับ sensor-name ตัวอย่างต่อไปนี้ตั้งค่าเซ็นเซอร์วัดความเร่งเป็นค่า x, y และ z โดยคั่นด้วยเครื่องหมายโคลอน
sensor set acceleration 2.23517e-07:9.77631:0.812348
การจำลอง SMS
sms send sender-phone-number textmessageสร้าง SMS ขาเข้าจำลอง รายการต่อไปนี้อธิบายพารามิเตอร์และค่าของพารามิเตอร์- sender-phone-number: มีสตริงตัวเลขที่กำหนดเอง
- textmessage: ข้อความ SMS
ตัวอย่างต่อไปนี้จะส่งข้อความ "สวัสดี" ไปยังหมายเลขโทรศัพท์ 4085555555
sms send 4085555555 hi there
คอนโซลจะส่งต่อข้อความ SMS ไปยังเฟรมเวิร์ก Android ซึ่งจะส่งต่อข้อความไปยังแอปในโปรแกรมจำลองที่จัดการ SMS เช่น แอป Messages หากคุณส่งหมายเลข 10 หลัก แอปจะจัดรูปแบบเป็นหมายเลขโทรศัพท์ สตริงตัวเลขที่ยาวขึ้นหรือสั้นลงจะแสดงตามที่คุณส่ง
การจำลองลายนิ้วมือ
finger touch fingerprint-id: จำลองการใช้นิ้วแตะเซ็นเซอร์
finger remove: จำลองการนำนิ้วออก
ดูวิธีการใช้คำสั่งเหล่านี้ได้ที่ส่วนต่อไปนี้เกี่ยวกับการจำลองและการตรวจสอบลายนิ้วมือ
บันทึกหน้าจอ
คำสั่งบันทึกหน้าจอช่วยให้บันทึกไฟล์วิดีโอคุณภาพสูงของ จอแสดงผลจริงของโปรแกรมจำลองได้โดยตรงจากระบบโฮสต์ ซึ่งมีประโยชน์อย่างยิ่ง สำหรับไปป์ไลน์การรวมอย่างต่อเนื่องและการรายงานข้อบกพร่องอัตโนมัติ
screenrecord {start| stop} fileเริ่มหรือหยุดกระบวนการบันทึกหน้าจอ- start file: เริ่มบันทึกวิดีโอ ไฟล์เอาต์พุตต้องลงท้ายด้วยนามสกุล
.webmที่จำเป็น ระบบจะบันทึกวิดีโอที่บันทึกไว้ในไดเรกทอรีเอาต์พุตของคอนโซล AVD โดยตรง~/.android/avd/avd_name.avd/console_out/file - stop file: หยุดกระบวนการบันทึกหน้าจอที่ทำงานอยู่
- start file: เริ่มบันทึกวิดีโอ ไฟล์เอาต์พุตต้องลงท้ายด้วยนามสกุล
การทำงานอัตโนมัติและมาโคร
ระบบย่อยของการทำงานอัตโนมัติช่วยให้นักพัฒนาซอฟต์แวร์บันทึกการเปลี่ยนสถานะของมาโครในอุปกรณ์เสมือนจริงที่ทำงานอยู่และเล่นซ้ำเพื่อดำเนินการทดสอบอัตโนมัติ
automation {record| stop-record| play| stop-play}จัดการการบันทึกมาโครอัตโนมัติ- record: เริ่มบันทึกการเปลี่ยนแปลงสถานะและการป้อนข้อมูลของอุปกรณ์
- stop-record: หยุดเซสชันการบันทึกมาโครปัจจุบัน
- เล่น: เริ่มเล่นลำดับมาโครที่บันทึกไว้
- stop-play: หยุดลำดับการเล่นมาโครที่ใช้งานอยู่
ฟิสิกส์ (6DoF)
คำสั่งฟิสิกส์จะจัดการการบันทึกท่าทางเชิงพื้นที่ที่ได้จากการสังเกตการณ์สำหรับโมเดลการเคลื่อนไหวทางกายภาพแบบ 6 องศาแห่งอิสระ (6DoF) ซึ่งใช้เพื่อจำลองการติดตามการเคลื่อนไหวขั้นสูง
physics {record-gt| stop}จัดการการบันทึกโมเดลท่าทางทางกายภาพ- record-gt: เริ่มบันทึกข้อมูลการเคลื่อนไหว 6DoF ที่เป็นความจริง
- stop: หยุดกระบวนการบันทึกความจริงภาคพื้นดินปัจจุบัน
ระบบควบคุมอุปกรณ์ขั้นสูง
ส่วนนี้รวบรวมปลายทางคำสั่งคอนโซลที่มีความเฉพาะเจาะจงสูงสำหรับการกำหนดค่าการจำลองขั้นสูง ซึ่งรวมถึงพร็อกซีเครือข่าย การกำหนดค่าแบบหลายจอภาพ การลบล้างการแสดงผล และการแก้ไขข้อบกพร่องโดยตรงของไฮเปอร์ไวเซอร์
multidisplay {add| del}เพิ่มหรือลบจอภาพเสมือนรองเพื่อทดสอบการกำหนดค่าแบบหลายหน้าจอ หมายเหตุ: จอภาพรองไม่รองรับโปรไฟล์แบบพับได้ เช่น Pixel Fold หรือโปรแกรมจำลองที่ปรับขนาดได้proxy {set| clear}กำหนดค่าการส่งต่อพร็อกซีเครือข่ายโดยใช้โปรแกรมจากคอนโซล- set host port: กำหนดการตั้งค่าพร็อกซีเป้าหมาย
- clear: รีเซ็ตการกำหนดค่าพร็อกซีกลับเป็นค่าเริ่มต้น หมายเหตุ: การดำเนินการชุดพร็อกซีจะล้มเหลวในสภาพแวดล้อมการดำเนินการแบบไม่มีส่วนหัว
virtualscene-image {wall| table} image_pathปรับแต่งผนังพื้นหลังหรือโต๊ะแนวนอนที่แสดงใน ฟีดกล้องฉากเสมือนด้วยไฟล์รูปภาพที่ผู้ใช้กำหนดเองresize-display scaleปรับความละเอียดของหน้าจอแบบไดนามิกระหว่างสเกลที่ตั้งค่าไว้ล่วงหน้า หมายเหตุ: การกำหนดค่าแบบไม่มีส่วนหัวไม่รองรับการปรับความละเอียดnodraw {on| off}ปิดใช้การแสดงผล GUI จริงบนหน้าจอโฮสต์เพื่อลดหน่วยความจำของระบบ และภาระงานของ GPU ในระหว่างการเรียกใช้การทำงานอัตโนมัติแบบไม่มีส่วนหัวในเบื้องหลังที่มีปริมาณมากgrpc portกำหนดค่าการควบคุมอุปกรณ์แบบเป็นโปรแกรมขั้นสูงผ่านพอร์ต gRPC ที่กำหนดเอง ปลายทางqemu monitorให้สิทธิ์เข้าถึงเทอร์มินัลแบบอินเทอร์แอกทีฟโดยตรงไปยังคอนโซลของไฮเปอร์ไวเซอร์พื้นฐาน คำสั่งนี้จะป้อนได้เฉพาะในเซสชันคอนโซล Telnet ที่ใช้งานอยู่เท่านั้นicebox track pidเปิดใช้การสแนปชอตระบบอัตโนมัติเมื่อกระบวนการของแอปที่ระบุ พบข้อยกเว้นหรือข้อขัดข้องที่ไม่ได้จัดการphonenumber numberตั้งค่าหมายเลขโทรศัพท์เสมือนจริงในพื้นที่ของอุปกรณ์เป้าหมาย
อินเทอร์เฟซแบบเป็นโปรแกรม gRPC
อีมูเลเตอร์เวอร์ชันที่ทันสมัยรองรับอินเทอร์เฟซแบบเป็นโปรแกรม gRPC ที่มีประสิทธิภาพ ควบคู่ไปกับคอนโซล Telnet แบบเดิม แม้ว่าคอนโซล Telnet จะเหมาะสำหรับ เซสชันแบบอินเทอร์แอกทีฟอย่างรวดเร็วหรือการเขียนสคริปต์อย่างง่าย แต่ส่วนติดต่อ gRPC ได้รับการออกแบบมา เพื่อการควบคุมอัตโนมัติที่มีประสิทธิภาพสูง ปลอดภัย และมีเสถียรภาพในการผสานรวมอย่างต่อเนื่อง (CI) และสภาพแวดล้อมแบบไม่มีส่วนหัว การมีปลายทางบริการโดยตรงทำให้ gRPC ไม่จำเป็นต้องแยกวิเคราะห์สตรีมข้อความ จัดการการแฮนด์เชคของเซสชันเทอร์มินัล หรือเปิดเผยพอร์ต localhost ที่ไม่ได้เข้ารหัส
หากต้องการช่วยในการเลือกระหว่างคอนโซล Telnet แบบเดิมกับอินเทอร์เฟซแบบเป็นโปรแกรม gRPC ที่ทันสมัย โปรดดูการเปรียบเทียบประสิทธิภาพ ความปลอดภัย และความสามารถของฟีเจอร์ต่อไปนี้
| ฟีเจอร์ | Telnet Console | อินเทอร์เฟซ gRPC |
|---|---|---|
| เหมาะสำหรับ | การแก้ไขข้อบกพร่องด้วยตนเอง เซสชันแบบอินเทอร์แอกทีฟ | CI/CD แบบไม่มีส่วนหัว อุปกรณ์ทดสอบอัตโนมัติที่ซับซ้อน |
| ความเร็ว | ช้ากว่า มีค่าใช้จ่ายเพิ่มเติมสำหรับข้อความ เวลาในการตอบสนองของการเชื่อมต่อ | เพิ่มประสิทธิภาพแล้ว HTTP/2 แบบมัลติเพล็กซ์ โปรโตคอลที่รวดเร็ว |
| ความปลอดภัย | ไม่ได้เข้ารหัส พอร์ตในเครื่อง (5554–5585) | สามารถรักษาความปลอดภัยด้วย TLS และทำงานผ่านเครือข่ายได้ |
| สตรีม | ไม่รองรับ ใช้ได้เฉพาะคำขอ-การตอบกลับ | สตรีมสำหรับ logcat, การจับภาพเสียงของแขก |
| สื่อ | เขียนไฟล์เอาต์พุตไปยังดิสก์ของโฮสต์/แขกรับเชิญ | บัฟเฟอร์ไบนารีแบบต่อสายโดยตรง |
| ระบบปฏิบัติการของเครื่องเสมือน | จำกัดเฉพาะคำสั่งโปรแกรมจำลองที่กำหนด | เรียกใช้คำสั่ง Bash Shell ของแขกรับเชิญ |
การเปิดตัวและการเรียกใช้ gRPC
หากต้องการใช้ปลายทาง gRPC ให้เปิดโปรแกรมจำลองของ Android จากบรรทัดคำสั่งและใส่แฟล็ก -grpc โดยระบุพอร์ต Loopback เป้าหมาย
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
เมื่อโปรแกรมจำลองทำงานโดยเปิดใช้บริการ gRPC แล้ว คุณจะทำการเรียก RPC แบบเป็นโปรแกรมได้
สำหรับการทดสอบบรรทัดคำสั่ง ให้ใช้ยูทิลิตี grpcurl เพื่อ
สื่อสารกับบริการของโปรแกรมจำลอง คำขอทั้งหมดจะจัดรูปแบบใน JSON และ
ส่งผ่านข้อความธรรมดา
# 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
การแมปคอนโซล Telnet กับบริการ gRPC
ตารางอ้างอิงต่อไปนี้จะจับคู่คำสั่งคอนโซล Telnet เดิมกับบริการและเมธอด gRPC ที่เกี่ยวข้อง เพื่อระบุวิธีทำให้การโต้ตอบกับอุปกรณ์เสมือนจริงทั่วไปเป็นแบบอัตโนมัติโดยใช้โปรแกรม
| หมวดหมู่ | คำสั่ง Telnet เดิม | บริการ / วิธีการ gRPC |
|---|---|---|
| สถานะ | ping |
EmulatorController/getStatus |
| สถานะ | avd name |
incubating.AvdService/getAvdInfo |
| สถานะ | kill |
EmulatorController/setVmState |
| สถานะ | restart |
EmulatorController/setVmState |
| กำลังไฟ | power display |
EmulatorController/getBattery |
| กำลังไฟ | power capacity |
EmulatorController/setBattery |
| Geo Loc | geo fix |
EmulatorController/setGps |
| เซ็นเซอร์ | sensor set |
incubating.SensorService/setSensor |
| ข้อมูลไบโอเมตริก | finger touch |
EmulatorController/sendFingerprint |
| ท่าทาง | posture |
EmulatorController/setPosture |
| ท่าทาง | physics / fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| การโทรผ่าน GSM | gsm call |
EmulatorController/sendPhone |
| การโทรผ่าน GSM | phonenumber |
EmulatorController/setPhoneNumber |
| เปลี่ยนเส้นทาง | redir add |
Waterfall/ForwardPort |
| อินพุต | event send EV_KEY |
EmulatorController/sendKey |
| อินพุต | event send EV_ABS |
EmulatorController/sendTouch |
| สื่อ | screenrecord |
incubating.ScreenRecording |
| การแสดงผล | nodraw |
EmulatorController/setDisplayMode |
| สแนปชอต | avd snapshot list |
SnapshotService/ListSnapshots |
| สแนปชอต | avd snapshot load/save |
SnapshotService/LoadSnapshot |
คำสั่งแบบเป็นโปรแกรมเฉพาะ gRPC
อินเทอร์เฟซ gRPC มีความสามารถล้ำสมัยหลายอย่างที่ ไม่สามารถดำเนินการผ่านการเชื่อมต่อคอนโซล Telnet แบบเดิมได้ ซึ่งรวมถึงการสตรีม Logcat โดยตรง การบันทึกหรือ การแทรกเสียงแบบ 2 ทิศทาง การแก้ไข GUI ของโฮสต์ และการเข้าถึงเชลล์โดยตรง
| บริการ / วิธีการ gRPC | พารามิเตอร์ | ความสามารถ |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
สตรีมเอาต์พุต Logcat ของระบบของผู้มาเยือน |
streamAudio |
{} |
สตรีมเสียงของลำโพงผ่านสาย |
injectAudio |
{"audio": "..."} |
แทรกสตรีมเสียงจากไมโครโฟน |
UiController |
{"theme": "DARK"} |
แก้ไขธีมหน้าต่างโฮสต์ |
Waterfall/Exec |
{"cmd": "ls"} |
เรียกใช้คำสั่งเชลล์ของระบบปฏิบัติการของผู้มาเยือนดั้งเดิม |
การจำลองและการตรวจสอบลายนิ้วมือ
ใช้คำสั่งนิ้วเพื่อจำลองและตรวจสอบการตรวจสอบสิทธิ์ด้วยลายนิ้วมือสำหรับแอป คุณต้องมี SDK Tools เวอร์ชัน 24.3 ขึ้นไปและ Android 6.0 (ระดับ API 23) ขึ้นไป
หากต้องการจำลองและตรวจสอบการตรวจสอบลายนิ้วมือ ให้ทำตามขั้นตอนต่อไปนี้
หากยังไม่มีลายนิ้วมือ ให้ลงทะเบียนลายนิ้วมือใหม่ใน โปรแกรมจำลองโดยเลือกการตั้งค่า > ความปลอดภัย > ลายนิ้วมือ แล้ว ทำตามวิธีการลงทะเบียน
ตั้งค่าแอปให้ยอมรับการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ หลังจากตั้งค่านี้แล้ว อุปกรณ์จะแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ
ขณะที่แอปแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ ให้ไปที่ คอนโซลแล้วป้อน
finger touchคำสั่งและรหัสลายนิ้วมือที่คุณ สร้างขึ้น ซึ่งจำลองการสัมผัสด้วยนิ้วจากนั้นป้อนคำสั่ง
finger removeเพื่อจำลองการนำนิ้วออก แอปของคุณ ควรถือว่าผู้ใช้แตะแล้วนำนิ้วออกจาก เซ็นเซอร์ลายนิ้วมือ