ส่งคำสั่งคอนโซลโปรแกรมจำลอง

อุปกรณ์เสมือนจริงที่ทำงานอยู่แต่ละเครื่องจะมีคอนโซลที่ให้คุณค้นหาและควบคุมสภาพแวดล้อมของอุปกรณ์จำลองได้ เช่น คุณสามารถใช้คอนโซลเพื่อจัดการการเปลี่ยนเส้นทางพอร์ต ลักษณะเครือข่าย และเหตุการณ์ทางโทรศัพท์ขณะที่แอปทำงานในโปรแกรมจำลอง

คำสั่งต่อไปนี้กำหนดให้คุณต้องมีโปรแกรมจำลองที่ทำงานอยู่แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกใช้โปรแกรมจำลองได้ที่หัวข้อเรียกใช้แอปในโปรแกรมจำลองของ Android และเริ่มโปรแกรมจำลองจากบรรทัดคำสั่ง

เริ่มและหยุดเซสชันคอนโซล

หากต้องการเข้าถึงคอนโซลและป้อนคำสั่งจากหน้าต่างเทอร์มินัล ให้ใช้ Telnet เพื่อเชื่อมต่อกับพอร์ตคอนโซลและระบุโทเค็นการตรวจสอบสิทธิ์ ทุกครั้งที่คอนโซลแสดงข้อความ OK แสดงว่าพร้อมรับคำสั่งแล้ว ไม่มีพรอมต์ที่ใช้กันทั่วไป

วิธีเชื่อมต่อกับคอนโซลของอุปกรณ์เสมือนจริงที่ทำงานอยู่

  1. เปิดหน้าต่างเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้

    telnet localhost console-port
    

    ชื่อหน้าต่างโปรแกรมจำลองจะแสดงหมายเลขพอร์ตคอนโซลเมื่อทำงานในหน้าต่างแยกต่างหาก แต่จะไม่แสดงเมื่อทำงานในหน้าต่างเครื่องมือ ตัวอย่างเช่น ชื่อหน้าต่างของโปรแกรมจำลองที่ใช้พอร์ตคอนโซล 5554 อาจเป็น Pixel8_API_34:5554 นอกจากนี้ คำสั่ง adb devices จะพิมพ์รายการอุปกรณ์เสมือนจริงที่ทำงานอยู่และหมายเลขพอร์ตคอนโซลของอุปกรณ์เหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ค้นหาอุปกรณ์

    หมายเหตุ: โปรแกรมจำลองจะคอยตรวจหาการเชื่อมต่อในพอร์ต 5554 ถึง 5585 และยอมรับการเชื่อมต่อจาก Localhost เท่านั้น

  2. หลังจากคอนโซลแสดงข้อความ OK ให้ป้อนคําสั่ง auth auth_token

    คุณต้องตรวจสอบสิทธิ์คอนโซลโปรแกรมจำลองก่อนจึงจะป้อนคำสั่งคอนโซลได้ auth_token ต้องตรงกับเนื้อหาของไฟล์ .emulator_console_auth_token ในไดเรกทอรีหลัก

    หากไม่มีไฟล์ดังกล่าว คำสั่ง telnet localhost console-port จะสร้างไฟล์ซึ่งมีโทเค็นการตรวจสอบสิทธิ์ที่สร้างขึ้นแบบสุ่ม หากต้องการปิดใช้การตรวจสอบสิทธิ์ ให้ลบโทเค็นออกจากไฟล์ .emulator_console_auth_token หรือสร้างไฟล์เปล่าหากไม่มีอยู่

  3. หลังจากเชื่อมต่อกับคอนโซลแล้ว ให้ป้อนคำสั่งคอนโซล

    ป้อน help, help command หรือ help-verbose เพื่อดูรายการคำสั่งคอนโซลและดูข้อมูลเกี่ยวกับคำสั่งที่เฉพาะเจาะจง

  4. หากต้องการออกจากเซสชันคอนโซล ให้ป้อน 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.

คำสั่งแบบ Fire-and-forget

หากไม่ต้องการให้เซสชันเปิดอยู่ ให้ใช้แป้นพิมพ์ลัด adb emu ซึ่งจะเรียกใช้คำสั่งและคืนค่าการควบคุมไปยัง Shell ที่เรียกใช้ทันที

adb emu command commandParameter

การเรียกใช้ด้วย adb emu จะเชื่อมต่อกับโปรแกรมจำลองที่พร้อมใช้งาน หากมีโปรแกรมจำลองหลายโปรแกรมทำงานพร้อมกัน คุณต้องส่งหมายเลขซีเรียลของโปรแกรมจำลองที่ต้องการกำหนดเป้าหมาย ดังนี้

adb -s emulator-serial emu command commandParameter

ข้อมูลอ้างอิงคำสั่งโปรแกรมจำลอง

รายการต่อไปนี้อธิบายคำสั่งคอนโซลของโปรแกรมจำลองพร้อมพารามิเตอร์และค่า

คำสั่งทั่วไป

  • avd {stop| start| status| name} ค้นหา ควบคุม และจัดการอุปกรณ์เสมือนจริง ดังนี้

    • stop: หยุดการทำงานของอุปกรณ์
    • start: เริ่มการทำงานของอุปกรณ์
    • status: ค้นหาสถานะของอุปกรณ์เสมือนจริง ซึ่งอาจเป็นกำลังทำงานหรือหยุดทำงาน
    • name: ค้นหาชื่ออุปกรณ์เสมือนจริง
  • avd snapshot {list| save name| load name| delete name} บันทึกและกู้คืนสถานะอุปกรณ์ในสแนปชอต ดังนี้

    • list: แสดงรายการสแนปชอตที่บันทึกไว้ทั้งหมด
    • save name: บันทึกสแนปชอตเป็นชื่อ
    • load name: โหลดสแนปชอตที่มีชื่อ
    • delete name: ลบสแนปชอตที่ระบุชื่อ

    ตัวอย่างต่อไปนี้จะบันทึกสแนปชอตที่มีชื่อว่า firstactivitysnapshot

    avd snapshot save firstactivitysnapshot
    
  • fold: พับอุปกรณ์เพื่อแสดงการกำหนดค่าหน้าจอที่เล็กลง หากอุปกรณ์พับได้และกางออกอยู่

  • unfold: กางอุปกรณ์ออกเพื่อแสดงการกำหนดค่าหน้าจอที่ใหญ่ขึ้น หากอุปกรณ์เป็นแบบพับได้และพับอยู่

  • kill: สิ้นสุดการทำงานของอุปกรณ์เสมือนจริง

  • ping: ตรวจสอบว่าอุปกรณ์เสมือนจริงทำงานอยู่หรือไม่

  • rotate: หมุน AVD ทวนเข็มนาฬิกาทีละ 45 องศา

ทำให้โปรแกรมจำลองขัดข้อง

  • crash: ทำให้โปรแกรมจำลองขัดข้องระหว่างการเรียกใช้แอป

  • 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 ไปยังโปรแกรมจำลอง

คุณสามารถออกคำสั่งเกี่ยวกับภูมิศาสตร์อย่างใดอย่างหนึ่งต่อไปนี้ได้ทันทีที่อุปกรณ์เสมือนจริงทำงาน โปรแกรมจำลองจะตั้งค่าตำแหน่งที่คุณป้อนโดยการสร้างผู้ให้บริการจำลองสถานที่ ผู้ให้บริการรายนี้จะตอบสนองต่อ Listener ตำแหน่งที่แอปตั้งค่าไว้และส่งตำแหน่งไปยัง LocationManager แอปใดก็ตามสามารถค้นหาเครื่องมือจัดการตำแหน่งเพื่อรับการแก้ไข 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 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 รายการพร้อมรหัสและค่ารหัสที่ไม่บังคับ

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 เปิด/ปิดไฟแบ็กไลต์ของแป้นพิมพ์
ตารางย่อย ข: สื่อและตัวควบคุมการเล่น
รหัส คำอธิบาย
KEY_PLAYPAUSE สลับสถานะเล่นและหยุดชั่วคราว
KEY_PLAY เริ่มเล่นสื่อ
KEY_PAUSECD หยุดเล่น CD ชั่วคราว
KEY_STOPCD หยุดเล่น CD
KEY_NEXTSONG ข้ามไปยังแทร็กถัดไป
KEY_PREVIOUSSONG ข้ามไปยังแทร็กก่อนหน้า
KEY_REWIND กรอกลับแทร็กที่ใช้งานอยู่
KEY_FASTFORWARD กรอแทร็กที่เล่นอยู่ไปข้างหน้า
KEY_RECORD คำสั่งทริกเกอร์การบันทึก
KEY_SHUFFLE เปิด/ปิดการเล่นแบบสุ่ม
KEY_REPEAT สลับการเล่นซ้ำ
KEY_MEDIA ทริกเกอร์คีย์สื่อ
ตารางย่อย ค: แป้นพิมพ์สำหรับการนำทางและแป้นพิมพ์ทั่วไป
รหัส คำอธิบาย
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 ตัวปรับแต่งแป้นพิมพ์ 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 แป้นพิมพ์ลัดฟังก์ชันพิเศษ D
KEY_FN_E แป้นพิมพ์ลัดฟังก์ชันพิเศษ E
KEY_FN_F แป้นพิมพ์ลัดฟังก์ชันพิเศษ F
KEY_FN_S แป้นพิมพ์ลัดฟังก์ชันพิเศษ S
KEY_FN_B แป้นพิมพ์ลัดสำหรับฟังก์ชันพิเศษ B
ตารางย่อย ฉ: เกมแพดและจอยสติ๊ก
รหัส คำอธิบาย
BTN_A / BTN_B / BTN_C ปุ่มด้านหน้าของตัวควบคุม A/B/C
BTN_X / BTN_Y / BTN_Z ปุ่มด้านหน้าของตัวควบคุม X/Y/Z
BTN_START ปุ่มเมนู 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 แฟล็ก Deadzone ของเกมแพดที่ไม่ได้ใช้งาน
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 แฟล็กความเร็วในการแตะสองครั้งด้วยท่าทางสัมผัส
BTN_TOOL_TRIPLETAP แฟล็กความเร็วในการแตะ 3 ครั้งด้วยท่าทางสัมผัส
ตารางย่อย H: ทางลัดของแอปพลิเคชัน
รหัส การดำเนินการเป้าหมาย
KEY_WWW เปิดเว็บเบราว์เซอร์เริ่มต้น
KEY_MAIL เปิดโปรแกรมรับส่งอีเมลเริ่มต้น
KEY_BOOKMARKS เปิดรายการบุ๊กมาร์กของเบราว์เซอร์
KEY_CALC เปิดยูทิลิตีเครื่องคิดเลข
KEY_FILE เปิด File Explorer ในเครื่อง
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 เปิดแผ่นจดบันทึก / ยูทิลิตีบันทึกช่วยจำ
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 คำสั่งหยุดเครื่องเล่น CD
KEY_DIGITS คำสั่งป้อนข้อมูลด้วยปุ่มกดดิจิทัล
KEY_TEEN ตัวเลือกค่าสำหรับวัยรุ่นบนปุ่มกด
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 hat และ POV
ABS_PRESSURE 0 ถึง 255 ระดับแรงกดของสไตลัส/ตัวชี้
ABS_DISTANCE มม. ระยะการโฮเวอร์ (สไตลัส)
ABS_TILT_X / _TILT_Y องศา มุมเอียงของสไตลัส
ABS_VOLUME แอนะล็อก ระดับเสียงของตัวควบคุม

การโต้ตอบด้วยการสัมผัสของ Android ขับเคลื่อนโดยโปรโตคอล Multi-touch (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
  • event text message: ส่งสตริงอักขระที่จำลองการกดแป้น ข้อความต้องเป็นสตริง UTF-8 ระบบจะแมปโพสต์ Unicode แบบย้อนกลับตามแป้นพิมพ์ของอุปกรณ์ปัจจุบัน และทิ้งอักขระที่ไม่รองรับโดยไม่มีการแจ้งเตือน

การควบคุมสถานะพลังงาน

  • จอแสดงผลพลังงาน: แสดงสถานะแบตเตอรี่และที่ชาร์จ

  • power ac {on| off}: ตั้งค่าสถานะการชาร์จ AC เป็นเปิดหรือปิด

  • 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 เปลี่ยนเวลาในการตอบสนองของเครือข่ายที่จำลอง

    โปรแกรมจำลองช่วยให้คุณจำลองระดับเวลาในการตอบสนองของเครือข่ายต่างๆ เพื่อให้คุณทดสอบแอปในสภาพแวดล้อมที่ใกล้เคียงกับสภาวะการทำงานจริงได้มากขึ้น คุณสามารถตั้งค่าระดับหรือช่วงเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง หรือจะใช้คอนโซลเพื่อเปลี่ยนเวลาในการตอบสนองขณะที่แอปทำงานในโปรแกรมจำลองก็ได้

    รูปแบบของเวลาในการตอบสนองของเครือข่ายเป็นรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลขคือมิลลิวินาที)

    รูปแบบเวลาในการตอบสนองของเครือข่าย:

  • gprs: GPRS ซึ่งใช้ช่วงเวลาในการตอบสนองขั้นต่ำ 150 และสูงสุด 550

  • edge: EDGE/EGPRS ซึ่งใช้ช่วงเวลาในการตอบสนองต่ำสุด 80 และสูงสุด 400

  • umts: UMTS/3G ซึ่งใช้ช่วงเวลาในการตอบสนองขั้นต่ำ 35 และสูงสุด 200

  • none: ไม่มีเวลาในการตอบสนอง

  • num: จำลองเวลาในการตอบสนองที่ระบุในหน่วยมิลลิวินาที

  • min:max: จำลองช่วงเวลาในการตอบสนองที่ระบุ

    หากต้องการตั้งค่าเวลาในการตอบสนองเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้ตัวเลือกโปรแกรมจำลอง -netdelay กับค่าเวลาในการตอบสนองที่รองรับ ตัวอย่าง

    emulator -netdelay gprs
    emulator -netdelay 40,100
    

    หากต้องการเปลี่ยนแปลงความล่าช้าของเครือข่ายขณะที่โปรแกรมจำลองทำงานอยู่ ให้เชื่อมต่อกับคอนโซลและใช้คำสั่ง network delay ดังนี้

    network delay gprs
    network delay 40 100
    
  • network 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

  • full: ความเร็วไม่จำกัด แต่ขึ้นอยู่กับความเร็วในการเชื่อมต่อของคอมพิวเตอร์

  • num: กำหนดอัตราที่แน่นอนเป็นกิโลบิตต่อวินาทีที่ใช้สำหรับการอัปโหลดและดาวน์โหลด

  • up:down: กำหนดอัตราที่แน่นอนเป็นกิโลบิตต่อวินาทีสำหรับการอัปโหลดและดาวน์โหลดแยกกัน

    หากต้องการตั้งค่าความเร็วเครือข่ายเมื่อเริ่มต้นโปรแกรมจำลอง ให้ใช้ตัวเลือกโปรแกรมจำลอง -netspeed ตัวอย่าง

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

    หากต้องการเปลี่ยนแปลงความเร็วเครือข่ายขณะที่โปรแกรมจำลองทำงานอยู่ ให้เชื่อมต่อกับคอนโซลและใช้คำสั่ง network speed ดังนี้

    network speed 14.4 80
    
  • network 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: สิ้นสุดการโทรเข้าหรือโทรออกไปยังหมายเลขโทรศัพท์
    • busy: ปิดสายโทรออกไปยังหมายเลขโทรศัพท์และเปลี่ยนสถานะการโทรเป็นไม่ว่าง คุณจะเปลี่ยนสถานะการโทรเป็นไม่ว่างได้ก็ต่อเมื่อสถานะปัจจุบันคือ "กำลังรอ" เท่านั้น
  • gsm {data| voice} state คำสั่งสถานะข้อมูลจะเปลี่ยนสถานะของการเชื่อมต่อข้อมูล GPRS และคำสั่งสถานะเสียงจะเปลี่ยนสถานะของการเชื่อมต่อเสียง GPRS ดังนี้

    • unregistered: ไม่มีเครือข่ายที่ใช้งานได้
    • home: อยู่ในเครือข่ายท้องถิ่น ไม่ใช่การโรมมิ่ง
    • roaming: อยู่ในเครือข่ายโรมมิ่ง
    • searching: กำลังค้นหาเครือข่าย
    • ถูกปฏิเสธ: โทรฉุกเฉินเท่านั้น
    • off: เหมือนกับ "unregistered"
    • on: เหมือนกับหน้าแรก
  • gsm hold: เปลี่ยนสถานะการโทรเป็นพักสาย คุณจะเปลี่ยนสถานะการโทรเป็นพักสายได้ก็ต่อเมื่อสถานะปัจจุบันคือใช้งานอยู่หรือรอสายเท่านั้น

  • gsm list: แสดงรายการสายโทรเข้าและสายโทรออกทั้งหมด รวมถึงสถานะของสายเหล่านั้น

  • gsm status: รายงานสถานะเสียงและข้อมูล 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 status: แสดงรายการเซ็นเซอร์ทั้งหมดและสถานะของเซ็นเซอร์

  • 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: หยุดกระบวนการบันทึกการแสดงผลที่ทำงานอยู่

การทำงานอัตโนมัติและมาโคร

ระบบย่อยของระบบอัตโนมัติช่วยให้นักพัฒนาซอฟต์แวร์บันทึกการเปลี่ยนสถานะมาโครในอุปกรณ์เสมือนจริงที่ทำงานอยู่ และเล่นซ้ำเพื่อเรียกใช้ขั้นตอนการทดสอบอัตโนมัติได้

  • automation {record| stop-record| play| stop-play} จัดการการบันทึกมาโครอัตโนมัติ
    • record: เริ่มบันทึกการเปลี่ยนแปลงสถานะของอุปกรณ์และอินพุต
    • stop-record: หยุดเซสชันการบันทึกมาโครปัจจุบัน
    • play: เริ่มเล่นลำดับมาโครที่บันทึกไว้
    • 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: รีเซ็ตการกำหนดค่าพร็อกซีกลับเป็นค่าเริ่มต้น หมายเหตุ: การดำเนินการชุดพร็อกซีจะดำเนินการไม่สำเร็จในสภาพแวดล้อมการดำเนินการแบบ Headless
  • virtualscene-image {wall| table} image_path ปรับแต่งผนังพื้นหลังหรือโต๊ะแนวนอนที่แสดงในฟีดกล้องฉากเสมือนจริงด้วยไฟล์ภาพที่ผู้ใช้กำหนดเอง

  • resize-display scale ปรับความละเอียดของหน้าจอแบบไดนามิกระหว่างสเกลที่กำหนดล่วงหน้า หมายเหตุ: การกำหนดค่าแบบ Headless ไม่รองรับการปรับความละเอียด

  • nodraw {on| off} ปิดใช้การแสดงผล GUI จริงบนหน้าจอโฮสต์เพื่อลดหน่วยความจำของระบบและภาระงานของ GPU ในระหว่างการเรียกใช้การทำงานอัตโนมัติแบบ Headless ในเบื้องหลังจำนวนมาก

  • grpc port กำหนดค่าการควบคุมอุปกรณ์แบบเป็นโปรแกรมขั้นสูงผ่านปลายทางพอร์ต gRPC ที่กำหนดเอง

  • qemu monitor ให้สิทธิ์เข้าถึงเทอร์มินัลแบบโต้ตอบโดยตรงไปยังคอนโซลของไฮเปอร์ไวเซอร์ที่เกี่ยวข้อง คำสั่งนี้ป้อนได้ผ่านเซสชันคอนโซล Telnet ที่ใช้งานอยู่เท่านั้น

  • icebox track pid เปิดใช้สแนปชอตระบบอัตโนมัติเมื่อกระบวนการของแอปที่ระบุพบข้อยกเว้นที่ไม่มีการจัดการหรือข้อขัดข้อง

  • phonenumber number ตั้งค่าหมายเลขโทรศัพท์ท้องถิ่นเสมือนของอุปกรณ์เป้าหมาย

อินเทอร์เฟซแบบเป็นโปรแกรม gRPC

เวอร์ชันโปรแกรมจำลองที่ทันสมัยรองรับอินเทอร์เฟซแบบเป็นโปรแกรม gRPC ที่มีประสิทธิภาพควบคู่ไปกับคอนโซล Telnet เดิม แม้ว่าคอนโซล Telnet จะเหมาะสำหรับเซสชันแบบอินเทอร์แอกทีฟที่รวดเร็วหรือการเขียนสคริปต์พื้นฐาน แต่อินเทอร์เฟซ gRPC ได้รับการออกแบบมาเพื่อการควบคุมอัตโนมัติที่มีประสิทธิภาพสูง ปลอดภัย และมีประสิทธิภาพในการรวมอย่างต่อเนื่อง (CI) และสภาพแวดล้อมแบบ Headless gRPC ช่วยให้ไม่จำเป็นต้องแยกวิเคราะห์สตรีมข้อความ จัดการแฮนด์เชคเซสชันเทอร์มินัล หรือเปิดพอร์ต localhost ที่ไม่ได้เข้ารหัส โดยการเสนอปลายทางบริการโดยตรง

หากต้องการเลือกใช้ระหว่างคอนโซล Telnet เดิมกับอินเทอร์เฟซแบบเป็นโปรแกรม gRPC สมัยใหม่ โปรดดูการเปรียบเทียบประสิทธิภาพ ความปลอดภัย และความสามารถของฟีเจอร์ต่อไปนี้

ฟีเจอร์ คอนโซล Telnet อินเทอร์เฟซ gRPC
เหมาะสำหรับ การแก้ไขข้อบกพร่องด้วยตนเอง เซสชันแบบอินเทอร์แอกทีฟ CI/CD แบบ Headless, อุปกรณ์ทดสอบอัตโนมัติที่ทำงานหนัก
ความเร็ว ช้ากว่า มีค่าใช้จ่ายเพิ่มเติมสำหรับข้อความ เวลาในการตอบสนองของการเชื่อมต่อ เพิ่มประสิทธิภาพแล้ว, HTTP/2 แบบมัลติเพล็กซ์, โปรโตคอลที่รวดเร็ว
ความปลอดภัย ไม่เข้ารหัส พอร์ตภายใน (5554-5585) สามารถรักษาความปลอดภัยด้วย TLS และทำงานผ่านเครือข่ายได้
สตรีม ไม่รองรับ ใช้ได้เฉพาะคำขอ-การตอบกลับเท่านั้น สตรีมสำหรับ Logcat, การบันทึกเสียงของผู้มาเยือน
สื่อ เขียนไฟล์เอาต์พุตไปยังดิสก์ของโฮสต์/ผู้เข้าร่วม บัฟเฟอร์ไบนารีแบบ Over-the-wire โดยตรง
ระบบปฏิบัติการของเกสต์ จำกัดเฉพาะคำสั่งโปรแกรมจำลองที่กำหนดไว้ เรียกใช้คำสั่ง Bash Shell ของผู้มาเยือนในเครื่อง

การเปิดใช้งานและการเรียกใช้ gRPC

หากต้องการใช้ปลายทาง gRPC ให้เปิดโปรแกรมจำลองของ Android จากบรรทัดคำสั่งและใส่ Flag -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 ของโฮสต์ และการเข้าถึง Shell โดยตรง

บริการ/เมธอด gRPC พารามิเตอร์ ความสามารถ
streamLogcat {"maxLines": 100} สตรีมเอาต์พุต Logcat ของระบบผู้มาเยือน
streamAudio {} สตรีมเสียงจากลำโพงผ่านสาย
injectAudio {"audio": "..."} แทรกสตรีมเสียงจากไมโครโฟน
UiController {"theme": "DARK"} แก้ไขธีมหน้าต่างของหน้าต่างโฮสต์
Waterfall/Exec {"cmd": "ls"} เรียกใช้คำสั่ง Shell ของระบบปฏิบัติการของแขกแบบเนทีฟ

การจำลองและการตรวจสอบลายนิ้วมือ

รูปที่ 1 หน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ

ใช้คำสั่ง finger เพื่อจำลองและตรวจสอบการตรวจสอบสิทธิ์ด้วยลายนิ้วมือสำหรับแอป คุณต้องใช้ SDK Tools 24.3 ขึ้นไปและ Android 6.0 (ระดับ API 23) ขึ้นไป

หากต้องการจำลองและตรวจสอบสิทธิ์ด้วยลายนิ้วมือ ให้ทำตามขั้นตอนต่อไปนี้

  1. หากยังไม่มีรหัสลายนิ้วมือ ให้ลงทะเบียนลายนิ้วมือใหม่ในโปรแกรมจำลองโดยเลือกการตั้งค่า > ความปลอดภัย > ลายนิ้วมือ แล้วทำตามวิธีการลงทะเบียน

  2. ตั้งค่าแอปให้ยอมรับการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ หลังจากตั้งค่านี้แล้ว อุปกรณ์จะแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ

  3. ขณะที่แอปแสดงหน้าจอการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ ให้ไปที่คอนโซลแล้วป้อนคำสั่ง finger touch และรหัสลายนิ้วมือที่คุณสร้างขึ้น ซึ่งจะจำลองการแตะด้วยนิ้ว

  4. จากนั้นป้อนคำสั่ง finger remove เพื่อจำลองการนำนิ้วออก แอปควรตอบสนองราวกับว่าผู้ใช้แตะแล้วนำนิ้วออกจากเซ็นเซอร์ลายนิ้วมือ