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

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

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

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

หากต้องการเข้าถึงคอนโซลและป้อนคำสั่งจากหน้าต่างเทอร์มินัล ให้ใช้ 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.

คำสั่งยิงแล้วลืม

หากไม่ต้องการให้เซสชันเปิดอยู่ ให้ใช้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: โหลดสแนปชอตที่มีชื่อ
    • ลบชื่อ: ลบสแนปชอตที่มีชื่อ

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

    avd 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
    OK
    
  • event 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 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

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

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

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

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

    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: สิ้นสุดการโทรเข้าจากหรือการโทรออกไปยังหมายเลขโทรศัพท์ 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: หยุดกระบวนการบันทึกหน้าจอที่ทำงานอยู่

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

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

  • 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"} เรียกใช้คำสั่งเชลล์ของระบบปฏิบัติการของผู้มาเยือนดั้งเดิม

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

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

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

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

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

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

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

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