อุปกรณ์เสมือนที่ทำงานแต่ละเครื่องจะมีคอนโซลที่ให้คุณค้นหาและควบคุมสภาพแวดล้อมของอุปกรณ์ที่จำลอง ตัวอย่างเช่น คุณสามารถใช้คอนโซลเพื่อจัดการการเปลี่ยนเส้นทางพอร์ต ลักษณะเครือข่าย และเหตุการณ์ทางโทรศัพท์ขณะที่แอปทำงานในโปรแกรมจำลองได้
คำสั่งต่อไปนี้กำหนดให้คุณต้องมีโปรแกรมจำลองที่ทำงานอยู่แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับ การเรียกใช้โปรแกรมจำลองได้ที่ เรียกใช้แอปใน Android Emulator และ เริ่มโปรแกรมจำลองจากบรรทัดคำสั่ง
เริ่มและหยุดเซสชันคอนโซล
หากต้องการเข้าถึงคอนโซลและป้อนคำสั่งจากหน้าต่างเทอร์มินัล ให้ใช้ telnet เพื่อ
เชื่อมต่อกับพอร์ตคอนโซลและระบุโทเค็นการตรวจสอบสิทธิ์ ทุกครั้งที่คอนโซลแสดง OK แสดงว่าพร้อมรับคำสั่งแล้ว ไม่มีพรอมต์ที่ใช้กันโดยทั่วไป
วิธีเชื่อมต่อกับคอนโซลของอุปกรณ์เสมือนที่กำลังทำงาน
- เปิดหน้าต่างเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้
- หลังจากที่คอนโซลแสดง
OKแล้ว ให้ป้อนคำสั่งauth auth_token - หลังจากเชื่อมต่อกับคอนโซลแล้ว ให้ป้อนคำสั่งคอนโซล
- หากต้องการออกจากเซสชันคอนโซล ให้ป้อน
quitหรือexit
telnet localhost console-port
ชื่อหน้าต่างโปรแกรมจำลองจะแสดงหมายเลขพอร์ตของคอนโซลเมื่อเรียกใช้ในหน้าต่างแยก แต่จะไม่แสดงเมื่อเรียกใช้ในหน้าต่างเครื่องมือ เช่น ชื่อหน้าต่างของโปรแกรมจำลองที่ใช้พอร์ตคอนโซล 5554
อาจเป็น Pixel8_API_34:5554 นอกจากนี้ คำสั่ง adb devices จะพิมพ์รายการอุปกรณ์เสมือนที่ทำงานอยู่และหมายเลขพอร์ตคอนโซลของอุปกรณ์เหล่านั้นด้วย ดูข้อมูลเพิ่มเติมได้ที่
ค้นหาอุปกรณ์
หมายเหตุ: โปรแกรมจำลองจะรอการเชื่อมต่อในพอร์ต 5554 ถึง 5585
และยอมรับการเชื่อมต่อจาก localhost เท่านั้น
คอนโซลของโปรแกรมจำลอง
ต้องมีการตรวจสอบสิทธิ์ก่อนจึงจะป้อนคำสั่งคอนโซลได้ auth_token ต้อง
ตรงกับเนื้อหาของไฟล์ .emulator_console_auth_token ในไดเรกทอรีหลัก
หากไม่มีไฟล์ดังกล่าว คำสั่ง telnet localhost console-port
จะสร้างไฟล์ซึ่งมีโทเค็นการตรวจสอบสิทธิ์ที่สร้างขึ้นแบบสุ่ม หากต้องการปิดใช้การตรวจสอบสิทธิ์
ให้ลบโทเค็นออกจากไฟล์
.emulator_console_auth_token หรือสร้างไฟล์ว่างหากไม่มีไฟล์ดังกล่าว
ป้อน help, help command หรือ help-verbose
เพื่อดูรายการคำสั่งคอนโซลและดูข้อมูลเกี่ยวกับคำสั่ง
ที่เฉพาะเจาะจง
ตัวอย่างเซสชัน
$ 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.
ข้อมูลอ้างอิงคำสั่งโปรแกรมจำลอง
ตารางต่อไปนี้อธิบายคำสั่งคอนโซลของโปรแกรมจำลองพร้อมพารามิเตอร์และค่า
ตารางที่ 1 คำสั่งคอนโซลโปรแกรมจำลอง
| คำสั่งทั่วไป | คำอธิบาย |
|---|---|
avd {stop|start|status|name}
|
ค้นหา ควบคุม และจัดการอุปกรณ์เสมือนได้ดังนี้
|
avd snapshot {list|save name|load name|delete
name}
|
บันทึกและกู้คืนสถานะอุปกรณ์ในสแนปชอต ดังนี้
ตัวอย่างต่อไปนี้จะบันทึกภาพรวมที่มีชื่อ avd snapshot save firstactivitysnapshot |
fold
|
พับอุปกรณ์เพื่อแสดงการกำหนดค่าหน้าจอขนาดเล็ก หากอุปกรณ์พับได้และ ปัจจุบันกางอยู่ |
unfold
|
กางอุปกรณ์เพื่อแสดงการกำหนดค่าหน้าจอที่ใหญ่ขึ้น หากอุปกรณ์เป็นแบบพับได้และ พับอยู่ |
kill
|
สิ้นสุดอุปกรณ์เสมือน |
ping
|
ตรวจสอบว่าอุปกรณ์เสมือนทำงานอยู่หรือไม่ |
rotate
|
หมุน AVD ทวนเข็มนาฬิกาครั้งละ 45 องศา |
| ทำให้โปรแกรมจำลองขัดข้อง | คำอธิบาย |
crash
|
ทำให้โปรแกรมจำลองขัดข้องขณะเรียกใช้แอป |
crash-on-exit |
ทำให้โปรแกรมจำลองขัดข้องเมื่อแอปออก |
| แก้ไขข้อบกพร่องของแท็ก | คำอธิบาย |
debug tags ...
|
เปิดหรือปิดใช้ข้อความแก้ไขข้อบกพร่องจากส่วนที่เฉพาะเจาะจงของโปรแกรมจำลอง
พารามิเตอร์ tags ต้องเป็นค่าจากรายการแท็กการแก้ไขข้อบกพร่องที่ปรากฏเมื่อคุณเรียกใช้
ตัวอย่างต่อไปนี้เปิดใช้แท็ก debug radio |
| การเปลี่ยนเส้นทางพอร์ต | คำอธิบาย |
redir list
|
แสดงการเปลี่ยนเส้นทางพอร์ตปัจจุบัน |
redir add protocol:host-port:guest-port
|
เพิ่มการเปลี่ยนเส้นทางพอร์ตใหม่ดังนี้
|
redir del protocol:host-port
|
ลบการเปลี่ยนเส้นทางพอร์ต
|
| สถานที่ตั้งทางภูมิศาสตร์ | คำอธิบาย |
|
ตั้งค่าตำแหน่งทางภูมิศาสตร์ที่รายงานไปยังแอปที่ทำงานภายในโปรแกรมจำลอง โดยการส่งการแก้ไข GPS ไปยังโปรแกรมจำลอง คุณสามารถออกคำสั่ง |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
ส่งการแก้ไข GPS อย่างง่ายไปยังโปรแกรมจำลอง
ระบุ longitude และ latitude
เป็นองศาทศนิยม ใช้ตัวเลขตั้งแต่ 1 ถึง 12 เพื่อระบุจำนวน
satellites ที่จะใช้ในการกำหนดตำแหน่ง
และระบุ altitude เป็นเมตรและ
velocity เป็นนอต
|
geo nmea sentence
|
ส่งประโยค NMEA 0183 ไปยังอุปกรณ์ที่จำลองราวกับว่าส่งจากโมเด็ม GPS ที่จำลอง
เริ่ม sentence ด้วย "$GP"
ปัจจุบันรองรับเฉพาะประโยค '$GPGGA' และ '$GPRCM' ตัวอย่างต่อไปนี้
คือประโยค GPGGA (Global Positioning System Fix Data) ที่รับ
เวลา ตำแหน่ง และข้อมูลการแก้ไขสำหรับเครื่องรับ 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 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 ...]
|
ส่งประเภทเหตุการณ์ปลอมอย่างน้อย 1 ประเภท |
event codes type
|
แสดงรหัสเหตุการณ์สำหรับประเภทเหตุการณ์ปลอมที่ระบุ |
event send type[:code]:[value] [...]
|
ส่งเหตุการณ์ปลอมอย่างน้อย 1 รายการพร้อมรหัสและค่ารหัสที่ไม่บังคับ
หากต้องการทราบว่าควรส่งเหตุการณ์ใด คุณสามารถใช้คำสั่ง เหตุการณ์ต่อไปนี้จะเกิดขึ้นเมื่อคุณกดปุ่มเปิด/ปิด
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
EV_KEY 2 รายการสำหรับ keydown และ keyup ดังนี้
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
event text message
|
ส่งสตริงของอักขระที่จำลองการกดแป้น ข้อความต้องเป็นสตริง UTF-8 ระบบจะแมปโพสต์ Unicode แบบย้อนกลับตามแป้นพิมพ์ของอุปกรณ์ปัจจุบัน และจะทิ้งอักขระที่ไม่รองรับ โดยไม่มีการแจ้งเตือน |
| การควบคุมสถานะเปิด/ปิด | คำอธิบาย |
power display
|
แสดงสถานะแบตเตอรี่และที่ชาร์จ |
power ac {on|off}
|
ตั้งค่าสถานะการชาร์จ AC เป็น on หรือ off
|
power status {unknown|charging|discharging|not-charging|full}
|
เปลี่ยนสถานะแบตเตอรี่ตามที่ระบุ |
power present {true|false}
|
ตั้งค่าสถานะการมีอยู่ของแบตเตอรี่ |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
ตั้งค่าสถานะประสิทธิภาพแบตเตอรี่ |
power capacity percent
|
ตั้งค่าสถานะความจุแบตเตอรี่ที่เหลืออยู่ เป็นเปอร์เซ็นต์จาก 0 ถึง 100 |
| สถานะการเชื่อมต่อเครือข่าย (อีเทอร์เน็ตและเครือข่ายมือถือเท่านั้น) |
คำอธิบาย |
network status
|
ตรวจสอบสถานะเครือข่าย รวมถึงลักษณะความเร็วและความล่าช้าในปัจจุบัน |
network delay latency
|
เปลี่ยนเวลาในการตอบสนองของเครือข่ายที่จำลอง โปรแกรมจำลองช่วยให้คุณจำลองระดับเวลาในการตอบสนองของเครือข่ายต่างๆ เพื่อทดสอบแอปในสภาพแวดล้อมที่คล้ายกับสภาพการทำงานจริงมากขึ้น คุณ ตั้งค่าระดับหรือช่วงเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง หรือใช้ คอนโซลเพื่อเปลี่ยนเวลาในการตอบสนองขณะที่แอปทำงานในโปรแกรมจำลองได้ รูปแบบของเครือข่าย latency คือรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลขเป็นมิลลิวินาที) รูปแบบเวลาในการตอบสนองของเครือข่าย:
หากต้องการตั้งค่าเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้ emulator -netdelay gprs emulator -netdelay 40,100 หากต้องการเปลี่ยนแปลงความล่าช้าของเครือข่ายขณะที่โปรแกรมจำลองกำลังทำงาน ให้เชื่อมต่อกับคอนโซลแล้วใช้คำสั่ง network delay gprs network delay 40 100 |
network speed speed |
โปรแกรมจำลองช่วยให้คุณจำลองอัตราการโอนข้อมูลในเครือข่ายต่างๆ ได้
คุณตั้งค่าอัตราหรือช่วงการโอนได้เมื่อเริ่มต้นโปรแกรมจำลอง หรือจะใช้คอนโซลเพื่อ เปลี่ยนอัตราขณะที่แอปทำงานในโปรแกรมจำลองก็ได้ รูปแบบของเครือข่าย รูปแบบความเร็วเครือข่าย:
หากต้องการตั้งค่าความเร็วเครือข่ายเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้ emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 หากต้องการเปลี่ยนแปลงความเร็วเครือข่ายขณะที่โปรแกรมจำลองกำลังทำงาน ให้เชื่อมต่อกับคอนโซล
และใช้คำสั่ง network speed 14.4 80 |
network capture {start|stop} file |
ส่งแพ็กเก็ตไปยังไฟล์ รายการต่อไปนี้อธิบายพารามิเตอร์และ
ค่าพารามิเตอร์
|
| การจำลองโทรศัพท์ | คำอธิบาย |
| โปรแกรมจำลอง Android มีโมเด็ม GSM และ CDMA จำลองของตัวเองที่ช่วยให้คุณจำลองฟังก์ชันโทรศัพท์ ในโปรแกรมจำลองได้ เช่น ด้วย GSM คุณสามารถจำลองการโทรเข้าและสร้าง และสิ้นสุดการเชื่อมต่อข้อมูลได้ เมื่อใช้ CDMA คุณจะต้องระบุแหล่งที่มาของการสมัครใช้บริการและรายการ โรมมิ่งที่ต้องการ ระบบ Android จะจัดการการโทรจำลองเหมือนกับการโทรจริงทุกประการ โปรแกรมจำลองไม่รองรับเสียงการโทร | |
gsm {call|accept|cancel|busy} phonenumber
|
พารามิเตอร์ gsm มีดังนี้
|
gsm {data|voice} state
|
คำสั่ง data state จะเปลี่ยนสถานะของการเชื่อมต่อข้อมูล GPRS
และคำสั่ง data voice state จะเปลี่ยนสถานะของการเชื่อมต่อเสียง GPRS
ดังนี้
|
gsm hold
|
เปลี่ยนสถานะการโทรเป็น hold คุณเปลี่ยนสถานะการโทรเป็น hold ได้ก็ต่อเมื่อสถานะปัจจุบันเป็น active หรือ
waiting เท่านั้น
|
gsm list
|
แสดงรายการการโทรเข้าและโทรออกทั้งหมด รวมถึงสถานะของการโทร |
gsm status
|
รายงานสถานะเสียง/ข้อมูล GSM ปัจจุบัน ค่าคือค่าที่
อธิบายไว้สำหรับคำสั่ง voice และ data
|
gsm signal {rssi|ber}
|
เปลี่ยนความแรงของสัญญาณ (rssi) และอัตราบิตผิดพลาด (ber) ที่รายงานในการอัปเดต 15
วินาทีถัดไป รายการต่อไปนี้อธิบายพารามิเตอร์และค่าของพารามิเตอร์
|
gsm signal-profile num
|
ตั้งค่าโปรไฟล์ความแรงของสัญญาณ
num คือตัวเลขตั้งแต่ 0 ถึง 4
|
cdma ssource source
|
ตั้งค่าแหล่งที่มาของการสมัครใช้บริการ CDMA ปัจจุบัน โดยที่
source คือรายการที่อนุญาตตามเครือข่ายซึ่งมี
ผู้สมัครใช้บริการของผู้ให้บริการ CDMA และค่าของผู้สมัครใช้บริการเหล่านั้น ดังนี้
|
cdma prl_version version
|
แสดงเวอร์ชันรายการโรมมิ่งที่ต้องการ (PRL) ปัจจุบัน หมายเลขเวอร์ชันใช้สำหรับฐานข้อมูล PRL ซึ่งมีข้อมูลที่ใช้ในระหว่างกระบวนการเลือกและรับระบบ |
| จัดการเซ็นเซอร์ในโปรแกรมจำลอง | คำอธิบาย |
คำสั่งเหล่านี้เกี่ยวข้องกับ
เซ็นเซอร์ที่พร้อมใช้งานใน AVD นอกจากการใช้คำสั่ง sensor แล้ว คุณยังดูและปรับการตั้งค่าในโปรแกรมจำลองได้ในหน้าจอเซ็นเซอร์เสมือนในแท็บเครื่องวัดความเร่งและเซ็นเซอร์เพิ่มเติม
|
|
sensor status |
แสดงเซ็นเซอร์ทั้งหมดและสถานะของเซ็นเซอร์ ต่อไปนี้คือตัวอย่างเอาต์พุตสำหรับคำสั่ง
sensor status
|
sensor get sensor-name
|
รับการตั้งค่าสำหรับ sensor-name ตัวอย่างต่อไปนี้จะรับค่าสำหรับเซ็นเซอร์วัดความเร่ง
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
|
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 ขาเข้าจำลอง รายการต่อไปนี้อธิบายพารามิเตอร์และ
ค่าของพารามิเตอร์
ตัวอย่างต่อไปนี้จะส่งข้อความ "สวัสดี" ไปยังหมายเลขโทรศัพท์ 4085555555 sms send 4085555555 hi there คอนโซลจะส่งต่อข้อความ SMS ไปยังเฟรมเวิร์ก Android ซึ่งจะส่งต่อข้อความไปยัง แอปในโปรแกรมจำลองที่จัดการ SMS เช่น แอป Messages หากคุณส่งหมายเลข 10 หลัก แอปจะจัดรูปแบบเป็นหมายเลขโทรศัพท์ สตริงตัวเลขที่ยาวขึ้นหรือสั้นลงจะแสดงตามที่คุณส่ง
|
| การจำลองลายนิ้วมือ | คำอธิบาย |
finger touch fingerprint-id
|
จำลองการใช้นิ้วแตะเซ็นเซอร์ |
finger remove
|
จำลองการนำนิ้วออก
ดูวิธีการใช้คำสั่งเหล่านี้ได้ที่ส่วนต่อไปนี้เกี่ยวกับการจำลองและการตรวจสอบลายนิ้วมือ |
การจำลองและการตรวจสอบลายนิ้วมือ
รูปที่ 1 หน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ
ใช้คำสั่ง finger เพื่อจำลองและตรวจสอบการตรวจสอบลายนิ้วมือสำหรับแอป คุณต้องมีเครื่องมือ SDK เวอร์ชัน 24.3 ขึ้นไปและ Android 6.0 (API ระดับ 23) ขึ้นไป
หากต้องการจำลองและตรวจสอบการตรวจสอบลายนิ้วมือ ให้ทำตามขั้นตอนต่อไปนี้
- หากยังไม่มีรหัสลายนิ้วมือ ให้ลงทะเบียนลายนิ้วมือใหม่ในโปรแกรมจำลอง โดยเลือกการตั้งค่า > ความปลอดภัย > ลายนิ้วมือ แล้วทำตาม วิธีการลงทะเบียน
- ตั้งค่าแอปให้ยอมรับ การตรวจสอบสิทธิ์ ด้วยลายนิ้วมือ หลังจากตั้งค่านี้แล้ว อุปกรณ์จะแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ
- ขณะที่แอปแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ ให้ไปที่คอนโซลแล้ว
ป้อน
finger touchคำสั่งและรหัสลายนิ้วมือที่คุณสร้างขึ้น ซึ่ง จำลองการสัมผัสด้วยนิ้ว - จากนั้นป้อนคำสั่ง
finger removeเพื่อจำลองการนำนิ้วออกแอปของคุณควรตอบสนองราวกับว่าผู้ใช้แตะและนำนิ้วออกจากเซ็นเซอร์ลายนิ้วมือ