Gửi lệnh từ bảng điều khiển trình mô phỏng

Mỗi thiết bị ảo đang chạy có một bảng điều khiển cho phép bạn truy vấn và kiểm soát môi trường thiết bị được mô phỏng. Ví dụ: bạn có thể dùng bảng điều khiển để quản lý lệnh chuyển hướng cổng, các đặc điểm mạng và các sự kiện của điện thoại trong khi ứng dụng đang chạy trên trình mô phỏng.

Các lệnh sau đây yêu cầu bạn phải đã chạy trình mô phỏng. Để biết thêm thông tin về cách chạy trình mô phỏng, hãy xem phần Chạy ứng dụng trên Trình mô phỏng AndroidBắt đầu trình mô phỏng từ dòng lệnh.

Bắt đầu và dừng phiên điều khiển

Để truy cập vào bảng điều khiển và nhập các lệnh, từ cửa sổ dòng lệnh, hãy sử dụng telnet để kết nối với cổng bảng điều khiển và cung cấp mã thông báo xác thực của bạn. Mỗi khi bảng điều khiển hiển thị OK, nghĩa là bảng điều khiển đã sẵn sàng chấp nhận các lệnh. Thông thường, sẽ không có lời nhắc.

Cách kết nối với bảng điều khiển của một thiết bị ảo đang chạy:

  1. Mở cửa sổ dòng lệnh và nhập lệnh sau:

    telnet localhost console-port
    

    Tiêu đề cửa sổ trình mô phỏng liệt kê số cổng của bảng điều khiển khi chạy trong một cửa sổ riêng, nhưng không liệt kê thông tin này khi chạy trong cửa sổ công cụ. Ví dụ: tiêu đề cửa sổ của một trình mô phỏng sử dụng cổng bảng điều khiển 5554 có thể là Pixel8_API_34:5554. Ngoài ra, lệnh adb devices in ra danh sách các thiết bị ảo đang chạy và số cổng của bảng điều khiển tương ứng. Để biết thêm thông tin, hãy xem phần Truy vấn thiết bị.

    Lưu ý: Trình mô phỏng sẽ theo dõi các kết nối trên các cổng từ 5554 đến 5585 và chỉ chấp nhận kết nối từ máy chủ cục bộ.

  2. Sau khi bảng điều khiển hiển thị OK, hãy nhập lệnh auth auth_token.

    Bảng điều khiển của trình mô phỏng yêu cầu xác thực trước khi bạn có thể nhập các lệnh trong bảng điều khiển. auth_token phải phù hợp với nội dung của tệp .emulator_console_auth_token trong thư mục gốc.

    Nếu tệp đó không tồn tại, lệnh telnet localhost console-port sẽ tạo tệp chứa mã thông báo xác thực được tạo ngẫu nhiên. Để tắt tính năng xác thực, hãy xoá mã thông báo khỏi tệp .emulator_console_auth_token hoặc tạo một tệp trống nếu không có tệp đó.

  3. Sau khi bạn đã kết nối với bảng điều khiển, hãy nhập các lệnh trong bảng điều khiển.

    Nhập help, help command hoặc help-verbose để xem danh sách các lệnh trong bảng điều khiển và tìm hiểu về các lệnh cụ thể.

  4. Để thoát khỏi phiên điều khiển, hãy nhập quit hoặc exit.

Dưới đây là một phiên mẫu:

$ 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.

Lệnh chỉ cần thực hiện một lần

Nếu bạn không cần mở phiên, hãy dùng phím tắt adb emu. Phím tắt này sẽ thực thi lệnh và ngay lập tức trả quyền kiểm soát cho trình bao gọi:

adb emu command commandParameter

Việc gọi bằng adb emu sẽ kết nối với trình mô phỏng hiện có. Nếu có nhiều trình mô phỏng chạy cùng lúc, bạn phải truyền vào số sê-ri của trình mô phỏng cụ thể mà bạn đang nhắm đến:

adb -s emulator-serial emu command commandParameter

Thông tin tham khảo về lệnh trong trình mô phỏng

Danh sách sau đây mô tả các lệnh trong bảng điều khiển của trình mô phỏng cùng với thông số và giá trị của các lệnh đó:

Lệnh chung

  • avd {stop| start| status| name} Truy vấn, điều khiển và quản lý thiết bị ảo như sau:

    • stop: Dừng quá trình thực thi của thiết bị.
    • start: Bắt đầu quá trình thực thi của thiết bị.
    • status: Truy vấn trạng thái của thiết bị ảo, có thể là đang chạy hoặc đã dừng.
    • name: Truy vấn tên của thiết bị ảo.
  • avd snapshot {list| save name| load name| delete name} Lưu và khôi phục trạng thái của thiết bị trong bản tổng quan nhanh như sau:

    • list: Liệt kê tất cả các bản tổng quan nhanh đã lưu.
    • save name: Lưu ảnh chụp nhanh dưới dạng tên.
    • load name: Tải bản tổng quan nhanh đã đặt tên.
    • delete name: Xoá ảnh chụp nhanh đã đặt tên.

    Ví dụ sau đây lưu một ảnh chụp nhanh có tên firstactivitysnapshot:

    avd snapshot save firstactivitysnapshot
    
  • fold: Gập thiết bị lại để hiển thị cấu hình màn hình nhỏ hơn (nếu thiết bị có thể gập lại và đang mở).

  • unfold: Mở thiết bị ra để hiển thị cấu hình màn hình lớn hơn (nếu thiết bị có thể gập lại và đang gập).

  • kill: Chấm dứt thiết bị ảo.

  • ping: Kiểm tra xem thiết bị ảo có đang chạy hay không.

  • rotate: Xoay AVD ngược chiều kim đồng hồ, mỗi lần xoay thêm 45 độ.

Huỷ trình mô phỏng

  • crash: Huỷ trình mô phỏng trong quá trình thực thi ứng dụng.

  • crash-on-exit: Huỷ trình mô phỏng khi ứng dụng thoát.

Thẻ gỡ lỗi

  • debug tags ...: Bật hoặc tắt thông báo gỡ lỗi từ các phần cụ thể của trình mô phỏng. Tham số thẻ phải là một giá trị trong danh sách các thẻ gỡ lỗi xuất hiện khi bạn thực thi emulator -help-debug-tags. Để biết thêm thông tin về tuỳ chọn -help-debug-tags, hãy xem bảng các tuỳ chọn thường dùng. Ví dụ sau đây sẽ bật thẻ radio:

    debug radio
    

Chuyển hướng cổng

  • redir list: Liệt kê hoạt động chuyển hướng cổng hiện tại.

  • redir add protocol:host-port:guest-port Thêm lệnh chuyển hướng cổng mới như sau:

    • protocol: Phải là tcp hoặc udp.
    • host-port: Số cổng cần mở trên máy chủ.
    • guest-port: Số cổng để định tuyến dữ liệu đến trên trình mô phỏng.
  • redir del protocol:host-port Xoá lệnh chuyển hướng cổng.

    • protocol: Phải là tcp hoặc udp.
    • host-port: Số cổng cần mở trên máy chủ.

Vị trí địa lý

Đặt vị trí địa lý được báo cáo cho các ứng dụng chạy bên trong trình mô phỏng bằng cách gửi bản sửa lỗi GPS cho trình mô phỏng.

Bạn có thể đưa ra một trong các lệnh về vị trí địa lý sau đây ngay khi thiết bị ảo đang chạy. Trình mô phỏng sẽ đặt vị trí bạn nhập bằng cách tạo một nhà cung cấp vị trí mô phỏng. Nhà cung cấp này phản hồi trình nghe vị trí do các ứng dụng cài đặt và cung cấp vị trí cho LocationManager. Mọi ứng dụng đều có thể truy vấn trình quản lý vị trí để lấy bản sửa lỗi GPS hiện tại cho thiết bị được mô phỏng bằng cách gọi LocationManager.getLastKnownLocation("gps").

  • geo fix longitude latitude [altitude] [satellites] [velocity]: Gửi bản sửa lỗi GPS đơn giản cho trình mô phỏng. Chỉ định kinh độ và vĩ độ theo độ thập phân. Sử dụng một số từ 1 đến 12 để chỉ định số lượng vệ tinh cần dùng để xác định vị trí, đồng thời chỉ định độ cao tính bằng mét và vận tốc tính bằng hải lý.

  • geo nmea sentence: Gửi một câu NMEA 0183 tới thiết bị được mô phỏng như thể câu này xuất phát từ một modem GPS được mô phỏng. Bắt đầu câu bằng "$GP". Hiện tại, chỉ có các câu "$GPGGA" và "$GPRCM" mới được hỗ trợ. Sau đây là ví dụ về một câu GPGGA (Dữ liệu khắc phục sự cố hệ thống định vị toàn cầu) có chức năng thu thập thời gian, vị trí và dữ liệu khắc phục sự cố cho bộ thu 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
    

Sự kiện phần cứng giả

Hệ thống con sự kiện phần cứng của bảng điều khiển trình mô phỏng cho phép bạn mô phỏng hầu như mọi hoạt động tương tác vật lý với thiết bị. Trong đó có các nút vật lý, thao tác chạm/cử chỉ trên màn hình, núm xoay, thao tác nhập bằng cần điều khiển và công tắc phần cứng.

  • event types: Liệt kê tất cả các loại sự kiện giả. Đối với các sự kiện có mã, số lượng mã sẽ xuất hiện trong dấu ngoặc đơn ở bên phải. Kết quả điểm dữ liệu:

    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 ...]: Gửi một hoặc nhiều loại sự kiện giả.

  • event codes type: Liệt kê các mã sự kiện cho loại sự kiện giả đã chỉ định.

  • event send type[:code]:[value] [...]: Gửi một hoặc nhiều sự kiện giả kèm theo mã và giá trị mã không bắt buộc.

EV_KEY – Tài liệu tham khảo mã khoá

Loại sự kiện EV_KEY được dùng để mô phỏng thao tác nhấn và nhả nút. Các bảng sau đây chia danh sách lớn các mã khoá được hỗ trợ thành các danh mục logic. Đối với mỗi mã khoá, việc gửi giá trị 1 sẽ mô phỏng thao tác nhấn, trong khi giá trị 0 sẽ mô phỏng thao tác nhả. Giá trị 2 biểu thị lần lặp lại khoá.

Bảng phụ A: Các khoá hệ thống Android
Mô tả
KEY_HOME Thao tác kích hoạt bằng nút Màn hình chính
KEY_BACK Điều kiện kích hoạt nút quay lại
KEY_MENU Nút trình đơn (mục bổ sung)
KEY_POWER Nút nguồn (nhấn/nhấn và giữ)
KEY_VOLUMEUP Trình kích hoạt nút Tăng âm lượng
KEY_VOLUMEDOWN Trình kích hoạt nút giảm âm lượng
KEY_CAMERA Nút chụp ảnh vật lý
KEY_FOCUS Màn trập tự động lấy nét của camera
KEY_SEARCH Nút tìm kiếm kích hoạt
KEY_SLEEP Sự kiện kích hoạt lệnh ngủ
KEY_WAKEUP Sự kiện kích hoạt lệnh đánh thức
KEY_NOTIFICATION Mở ngăn thông báo
KEY_MUTE Tắt đầu ra âm thanh hệ thống
KEY_MICMUTE Tắt tiếng đầu vào micrô
KEY_BRIGHTNESSDOWN Giảm độ sáng màn hình
KEY_BRIGHTNESSUP Tăng độ sáng màn hình
KEY_PHONE Mở ứng dụng gọi điện mặc định
KEY_SEND Gửi hoặc bắt đầu cuộc gọi điện thoại
KEY_HEADSETHOOK Giá treo tai nghe (trả lời/kết thúc cuộc gọi)
KEY_SCREEN Lệnh kích hoạt trình bảo vệ màn hình
KEY_CONFIG Trình đơn hệ thống cấu hình
KEY_SWITCHVIDEOMODE Chuyển chế độ video hệ thống
KEY_KBDILLUMTOGGLE Bật/tắt đèn nền bàn phím
Bảng phụ B: Nội dung nghe nhìn và nút điều khiển chế độ phát
Mô tả
KEY_PLAYPAUSE Chuyển đổi trạng thái phát và tạm dừng
KEY_PLAY Bắt đầu phát nội dung nghe nhìn
KEY_PAUSECD Tạm dừng phát đĩa CD
KEY_STOPCD Dừng phát đĩa CD
KEY_NEXTSONG Chuyển đến bản nhạc tiếp theo
KEY_PREVIOUSSONG Chuyển về bản nhạc trước
KEY_REWIND Tua lại kênh đang hoạt động
KEY_FASTFORWARD Tua đi nhanh chương trình đang hoạt động
KEY_RECORD Lệnh kích hoạt bản ghi
KEY_SHUFFLE Bật/tắt chế độ phát ngẫu nhiên
KEY_REPEAT Bật/tắt chế độ phát lặp lại
KEY_MEDIA Điều kiện kích hoạt phím đa phương tiện
Bảng phụ C: Bàn phím điều hướng và bàn phím chung
Mô tả
KEY_UP Hướng lên trên của D-pad
KEY_DOWN Hướng xuống dưới của D-pad
KEY_LEFT Hướng D-pad sang trái
KEY_RIGHT Hướng D-pad sang phải
KEY_PAGEUP Điều hướng trang lên
KEY_PAGEDOWN Điều hướng xuống trang
KEY_INSERT Chèn điều kiện kích hoạt khoá
KEY_DELETE Xoá trình kích hoạt khoá
KEY_ENTER Trình kích hoạt phím Enter
KEY_ESC Trình kích hoạt phím Escape
KEY_TAB Trình kích hoạt phím Tab
KEY_SPACE Trình kích hoạt phím cách
KEY_BACKSPACE Thao tác sẽ thực hiện khi nhấn phím Backspace
KEY_CLEAR Xoá vùng đệm đầu vào
KEY_CANCEL Huỷ thao tác đang diễn ra
KEY_OK Xác nhận/OK lựa chọn
KEY_SELECT Chọn điều kiện kích hoạt mục
KEY_GOTO Chuyển đến địa điểm được chỉ định
KEY_HELP Truy cập vào nội dung trợ giúp
Bảng con D: Chữ và số và biểu tượng trên bàn phím số
  • Chữ cái trong bảng chữ cái tiêu chuẩn: KEY_A đến KEY_Z (26 mã).
  • Các phím trên bàn phím số: KEY_1 đến KEY_0 (10 mã).
Ký hiệu nhân vật
KEY_COMMA ,
KEY_DOT .
KEY_SLASH /
KEY_SEMICOLON ;
KEY_APOSTROPHE '
KEY_GRAVE \`
KEY_MINUS -
KEY_EQUAL =
KEY_LEFTBRACE [
KEY_RIGHTBRACE ]
KEY_BACKSLASH \
KEY_KPASTERISK * (Bàn phím số)
KEY_KPPLUS + (Bàn phím số)
KEY_KPMINUS - (Bàn phím số)
KEY_KPDOT . (Bàn phím số)
KEY_KPSLASH / (Bàn phím số)
KEY_KPENTER Enter (Bàn phím số)
KEY_KPEQUAL = (Bàn phím số)
KEY_KPCOMMA , (Bàn phím số)
KEY_KPJPCOMMA , (Bố cục tiếng Nhật)
KEY_KPLEFTPAREN ( (Bàn phím số)
KEY_KPRIGHTPAREN ) (Bàn phím số)
KEY_KPPLUSMINUS ± (Bàn phím số)
Bảng phụ E: Phím bổ trợ và phím chức năng
  • Các phím chức năng tiêu chuẩn: KEY_F1 đến KEY_F24 (24 mã).
Mô tả
KEY_LEFTSHIFT Phím Shift bên trái
KEY_RIGHTSHIFT Phím bổ trợ Right Shift
KEY_LEFTCTRL Phím bổ trợ Control bên trái
KEY_RIGHTCTRL Phím bổ trợ Control bên phải trên bàn phím
KEY_LEFTALT Phím bổ trợ Alt bên trái
KEY_RIGHTALT Phím bổ trợ Alt bên phải
KEY_LEFTMETA Phím Meta/Command bên trái
KEY_RIGHTMETA Phím Meta/Command bên phải
KEY_CAPSLOCK Bật/tắt bàn phím Caps Lock
KEY_NUMLOCK Bật/tắt bàn phím Num Lock
KEY_SCROLLLOCK Nút bật/tắt Scroll Lock trên bàn phím
KEY_COMPOSE Trợ lý ký tự Compose
KEY_FN Phím FN trên bàn phím vật lý
KEY_FN_ESC Tổ hợp phím chức năng
KEY_FN_1 Phím tắt cho chức năng đặc biệt 1
KEY_FN_2 Phím tắt cho chức năng đặc biệt 2
KEY_FN_D Phím tắt có chức năng đặc biệt D
KEY_FN_E Phím tắt có chức năng đặc biệt E
KEY_FN_F Phím tắt chức năng đặc biệt F
KEY_FN_S Phím tắt có chức năng đặc biệt S
KEY_FN_B Phím tắt cho chức năng đặc biệt B
Bảng phụ F: Tay điều khiển trò chơi và cần điều khiển
Mô tả
BTN_A / BTN_B / BTN_C Nút hành động A/B/C trên bộ điều khiển
BTN_X / BTN_Y / BTN_Z Nút hành động X/Y/Z trên bộ điều khiển
BTN_START Nút trình đơn Bắt đầu của tay điều khiển trò chơi
BTN_SELECT Nút Chọn trên tay điều khiển trò chơi
BTN_MODE Nút chuyển Chế độ bộ điều khiển
BTN_TL/BTN_TR Nút vai trái / phải
BTN_TL2/BTN_TR2 Nút kích hoạt tương tự bên trái / phải
BTN_THUMBL/BTN_THUMBR Nhấn cần điều khiển trái / phải
BTN_DPAD_UP Nút chuyển lên trên trên D-pad của tay điều khiển trò chơi
BTN_DPAD_DOWN Trình kích hoạt nút chuyển xuống dưới trên D-pad của tay điều khiển trò chơi
BTN_DPAD_LEFT Nút kích hoạt bên trái trên D-pad của tay điều khiển trò chơi
BTN_DPAD_RIGHT Nút kích hoạt bên phải trên D-pad của tay điều khiển trò chơi
BTN_THUMB Nút kích hoạt chính của cần điều khiển
BTN_TOP/BTN_TOP2 Các nút trên cùng của cần điều khiển
BTN_PINKIE Nút kích hoạt ngón út trên cần điều khiển
BTN_BASE đến _BASE6 Các nút cơ bản của nền tảng cần điều khiển
BTN_DEAD Cờ vùng chết của tay điều khiển trò chơi không hoạt động
BTN_TRIGGER Nút kích hoạt tay cầm cần điều khiển thực
BTN_JOYSTICK Mã đầu vào chung của cần điều khiển
Bảng phụ G: Phương thức nhập bằng chuột, thao tác chạm và bút cảm ứng
Mô tả
BTN_MOUSE Sự kiện con trỏ chuột chung
BTN_LEFT Nhấp vào nút chuột trái
BTN_RIGHT Nhấp vào nút chuột phải
BTN_MIDDLE Nhấp nút giữa của con lăn
BTN_SIDE Nút kích hoạt phím bên điều hướng
BTN_EXTRA Nút bổ sung trên chuột
BTN_FORWARD Nhấp vào nút điều hướng tiến trên trình duyệt
BTN_BACK Nhấp vào nút điều hướng quay lại của trình duyệt
BTN_TASK Phím trình chuyển đổi tác vụ hệ thống
BTN_TOUCH Đã phát hiện thấy màn hình có tiếp xúc vật lý
BTN_STYLUS Khoảng cách gần của bút cảm ứng đang hoạt động
BTN_STYLUS2 Công tắc phụ trên bút cảm ứng
BTN_TOOL_PEN Giá trị nhận dạng công cụ bút cảm ứng
BTN_TOOL_RUBBER Giá trị nhận dạng công cụ tẩy bút cảm ứng
BTN_TOOL_BRUSH Giá trị nhận dạng công cụ bút vẽ
BTN_TOOL_PENCIL Giá trị nhận dạng công cụ bút chì phác thảo
BTN_TOOL_AIRBRUSH Mã nhận dạng công cụ sơn phun
BTN_TOOL_FINGER Tiếp xúc ngón tay với màn hình cảm ứng
BTN_TOOL_MOUSE Giá trị nhận dạng công cụ chuột bên ngoài
BTN_TOOL_LENS Công cụ ống kính phóng đại quang học
BTN_TOOL_DOUBLETAP Cờ tốc độ nhấn đúp bằng cử chỉ
BTN_TOOL_TRIPLETAP Cờ tốc độ nhấn 3 lần bằng cử chỉ
Bảng phụ H: Lối tắt ứng dụng
Hành động mục tiêu
KEY_WWW Khởi chạy trình duyệt web mặc định
KEY_MAIL Mở ứng dụng email mặc định
KEY_BOOKMARKS Mở danh sách dấu trang của trình duyệt
KEY_CALC Mở tiện ích máy tính
KEY_FILE Mở trình khám phá tệp cục bộ
KEY_EDIT Điều kiện kích hoạt chỉnh sửa tài liệu
KEY_NEW Tạo điều kiện kích hoạt mới cho tài liệu
KEY_OPEN Điều kiện kích hoạt mở tài liệu
KEY_SAVE Trình kích hoạt tác vụ lưu tệp
KEY_CLOSE Trình kích hoạt tác vụ đóng tệp
KEY_PRINT Trình kích hoạt tác vụ in tệp
KEY_COPY Thao tác sao chép vào bộ đệm của bảng nhớ tạm
KEY_PASTE Thao tác chèn bộ đệm của bảng nhớ tạm
KEY_CUT Thao tác cắt bộ đệm của khay nhớ tạm
KEY_UNDO Thao tác huỷ bộ nhớ đệm của bảng nhớ tạm
KEY_REDO Thao tác làm lại vùng đệm của bảng nhớ tạm
KEY_CANCEL Điều kiện kích hoạt quy trình huỷ vùng đệm
KEY_FIND Tiện ích tìm kiếm tài liệu
KEY_REFRESH Tiện ích làm mới tài liệu
KEY_EXIT Tiện ích đóng tài liệu
KEY_DOCUMENTS Khởi chạy cổng tài liệu hệ thống
KEY_HOMEPAGE Khởi chạy trình duyệt trang chủ
KEY_FAVORITES Mở cổng thông tin về mục yêu thích trên trình duyệt
KEY_CHAT Khởi chạy trình nhắn tin tức thời
KEY_EMAIL Điều kiện kích hoạt email thay thế
KEY_FINANCE Mở tiện ích chứng khoán/tài chính
KEY_SPORT Mở tiện ích theo dõi thể thao
KEY_SHOP Mở cổng mua sắm kỹ thuật số
KEY_PLAYER Mở trình phát nội dung nghe nhìn chính
KEY_MP3 Mở trình phát MP3 chính
KEY_TEXT Mở trình chỉnh sửa văn bản mặc định
KEY_LIST Mở tiện ích danh sách kiểm tra
KEY_MEMO Mở tiện ích ghi chú / ghi nhớ
KEY_CALENDAR Mở cổng lịch / chương trình làm việc
KEY_DIRECTORY Mở thư mục địa chỉ hệ thống
KEY_COMPUTER Mở trình khám phá quy cách
KEY_TV/KEY_TV2 Mở cổng thông tin truyền hình
KEY_RADIO Khởi chạy tiện ích đài phát
KEY_CD/KEY_DVD Kích hoạt trình đọc ổ đĩa quang
KEY_AUDIO/KEY_VIDEO Truy cập vào quy cách về nội dung nghe nhìn
KEY_TUNER Định cấu hình thiết bị nhận/bộ chỉnh
KEY_SAT/KEY_SAT2 Định cấu hình nguồn cấp dữ liệu vệ tinh
KEY_TAPE Phát nội dung trên băng
KEY_VCR Phát nguồn cấp dữ liệu của trình phát VCR
KEY_VCR2 Phát nguồn cấp dữ liệu của trình phát VCR 2
KEY_AUX Đầu vào cổng nội dung nghe nhìn phụ
KEY_SETUP Trình đơn cấu hình thiết lập
KEY_PROG1 đến _PROG4 Khoá chương trình do người dùng xác định
KEY_ZOOM Bật/tắt chế độ thu phóng khung nhìn
KEY_MODE Chọn chế độ khung hiển thị
KEY_KEYBOARD Hiện/ẩn bàn phím ảo
KEY_LANGUAGE Chuyển đổi ngôn ngữ của bản âm thanh
KEY_TITLE Mở các lựa chọn về tiêu đề nội dung nghe nhìn
KEY_SUBTITLE Bật/tắt giao diện phụ đề
KEY_ANGLE Thay đổi góc quay của camera
KEY_EPG Mở hướng dẫn chương trình điện tử
KEY_PVR Mở máy quay video cá nhân
KEY_MHP Mở nền tảng đa phương tiện tại nhà
KEY_CHANNEL Mở các kênh của bộ dò TV
KEY_CHANNELUP Điều chỉnh kênh truyền hình lên
KEY_CHANNELDOWN Điều chỉnh kênh truyền hình xuống
KEY_RED Nút tương tác màu đỏ
KEY_GREEN Nút tương tác màu xanh lục
KEY_YELLOW Nút tương tác màu vàng
KEY_BLUE Nút tương tác màu xanh dương
KEY_FIRST Chọn lựa chọn đầu tiên
KEY_LAST Chọn mục cuối cùng
KEY_NEXT Chọn lựa chọn phụ đề tiếp theo
KEY_PREVIOUS Chọn lựa chọn phụ đề trước
KEY_RESTART Khởi động lại vòng lặp của bản phụ đề
KEY_SLOW Lựa chọn phát ở chế độ chuyển động chậm
KEY_AB Vòng lặp trình tự lặp lại A-B
KEY_PLAYCD Lệnh phát của đầu đọc CD
KEY_PAUSECD Lệnh tạm dừng trên đĩa CD
KEY_STOPCD Lệnh dừng đĩa CD
KEY_DIGITS Lệnh nhập bằng bàn phím số
KEY_TEEN Lựa chọn giá trị cho thanh thiếu niên trên bàn phím số
KEY_TWEN Lựa chọn giá trị twen của bàn phím
KEY_DEL_EOL Xoá đến cuối vùng đệm dòng
KEY_DEL_EOS Xoá đến cuối vùng đệm màn hình
KEY_INS_LINE Chèn vùng đệm dòng mới
KEY_BRL_DOT1 đến _DOT8 Đầu vào nút trên màn hình chữ nổi
KEY_VOICECOMMAND Khởi chạy ứng dụng trợ lý thoại
KEY_SELECTIVE_SCREEN Kích hoạt tính năng cắt màn hình theo khu vực
KEY_BATTERY Truy vấn thông báo về pin
KEY_STAR/KEY_SHARP Ký hiệu trên bàn phím điện thoại
KEY_PLUS Bàn phím điện thoại có dấu cộng
KEY_INFO Hiện lớp phủ bảng thông tin
KEY_TIME Hiển thị giờ hiện tại trên đồng hồ
KEY_VENDOR Truy vấn quy cách của nhà cung cấp
KEY_ARCHIVE Mở tiện ích lưu trữ cục bộ
KEY_PROGRAM Định cấu hình các thông số chương trình
KEY_POWER2 Kích hoạt nguồn điện dự phòng

EV_ABS – Sự kiện chuyển động tuyệt đối

Loại sự kiện EV_ABS là yếu tố quan trọng để mô phỏng các thao tác chạm chính xác, cử chỉ kéo và thả, thao tác thu phóng bằng nhiều ngón tay và điều chỉnh cần điều khiển. Toạ độ tuyệt đối bên dưới bản đồ tương ứng trực tiếp với độ phân giải màn hình thực tế.

Phạm vi toạ độ Mô tả
ABS_MT_TRACKING_ID -1 hoặc ≥0 Mã theo dõi; -1 kết thúc thao tác chạm
ABS_MT_POSITION_X 0 đến 1767 Toạ độ X (Pixel Fold)
ABS_MT_POSITION_Y 0 đến 2207 Toạ độ Y (Pixel Fold)
ABS_MT_TOUCH_MAJOR pixel Chiều rộng trục chính của vùng chạm
ABS_MT_TOUCH_MINOR pixel Chiều rộng trục phụ của vùng chạm
ABS_MT_WIDTH_MAJOR pixel Chiều rộng trục chính của công cụ
ABS_MT_WIDTH_MINOR pixel Chiều rộng trục phụ của công cụ
ABS_MT_ORIENTATION 0 đến 255 Góc hướng tiếp xúc
ABS_MT_PRESSURE 0 đến 255 Độ lớn lực tiếp xúc
ABS_MT_DISTANCE mm Khoảng cách di chuột so với màn hình
ABS_MT_TOOL_TYPE 0 đến 2 0=ngón tay, 1=bút, 2=bút chì
ABS_MT_BLOB_ID số nguyên Giá trị nhận dạng blob liên hệ
ABS_MT_TOOL_X pixel Toạ độ vị trí X của công cụ
ABS_MT_TOOL_Y pixel Toạ độ vị trí Y của công cụ
ABS_MT_SLOT 0 đến N Khe cắm đang hoạt động (Giao thức B)
ABS_X / _Y / _Z tương tự Trục toạ độ của cần điều khiển
ABS_RX / _RY / _RZ tương tự Trục xoay của cần điều khiển
ABS_THROTTLE/_BRAKE tương tự Bàn đạp và các nút điều khiển lái
ABS_HAT0X/_HAT0Y -1 / 0 / 1 Mũ D-pad và công tắc POV
ABS_PRESSURE 0 đến 255 Lực của bút cảm ứng / con trỏ
ABS_DISTANCE mm Khoảng cách di chuột (bút cảm ứng)
ABS_TILT_X/_TILT_Y độ Góc nghiêng của bút cảm ứng
ABS_VOLUME tương tự Mức âm lượng của bộ điều khiển

Tương tác chạm trên Android được điều khiển bằng Giao thức đa điểm chạm (MT). Các trình mô phỏng hiện đại triển khai cả Giao thức A (không trạng thái, gửi các gói liên hệ được phân tách bằng dấu đồng bộ hoá) và Giao thức B (có trạng thái, chỉ định các liên hệ cho các vị trí theo dõi chuyên dụng). Giao thức B cho phép theo dõi hiệu quả nhiều lượt chạm đồng thời cho các cử chỉ như chụm để thu phóng.

EV_REL và EV_SW – Chuyển động và công tắc phần cứng

Danh mục sự kiện EV_REL quản lý các thay đổi về con trỏ hoặc toạ độ tương đối, chủ yếu được dùng để mô phỏng chuyển động của chuột ngoài hoặc bánh xe cuộn. Danh mục sự kiện EV_SW quản lý các công tắc thiết bị thực, chẳng hạn như điện thoại lật hoặc máy tính bảng có gập hay không, hoặc nếu phần cứng âm thanh bên ngoài được cắm vào.

Giá trị Mô tả
REL_X Delta Di chuyển con trỏ theo chiều ngang
REL_Y Delta Di chuyển con trỏ theo chiều dọc
SW_LID 0/1 Trạng thái nắp máy tính xách tay (0=Mở, 1=Đóng)
SW_TABLET_MODE 0/1 Trạng thái của chế độ máy tính bảng (0=Tắt, 1=Đang hoạt động)
SW_HEADPHONE_INSERT 0/1 Trạng thái giắc tai nghe (0=Out, 1=In)
SW_MICROPHONE_INSERT 0/1 Trạng thái giắc cắm micrô (0=Đầu ra, 1=Đầu vào)
Cú pháp điều phối lệnh

Để gửi các mã này, hãy định dạng lệnh trên bảng điều khiển bằng các loại, mã và giá trị được phân tách bằng dấu hai chấm. Bạn có thể xếp nhiều thay đổi về toạ độ vào hàng đợi trong một chuỗi duy nhất. Điều quan trọng là bạn luôn thêm dấu đồng bộ hoá cuối cùng (EV_SYN:0:0) để cho biết khung trình mô phỏng sẽ kết hợp và xử lý các dữ liệu đầu vào này cùng nhau.

Ví dụ về tập lệnh sự kiện và cử chỉ

Vì Telnet cho phép gửi các tham số nhiều phần, nên bạn có thể mô phỏng các chuỗi cử chỉ thực tế. Dưới đây là cấu trúc tập lệnh sự kiện thô để tự động hoá cử chỉ từ bảng điều khiển máy chủ.

Mô phỏng thao tác nhấn vào màn hình

Để thực hiện thao tác nhấn màn hình sạch tại một toạ độ mục tiêu, hãy chỉ định một mã nhận dạng theo dõi, chỉ định toạ độ X và Y trên màn hình, mô phỏng thao tác chạm tiếp xúc, đồng bộ hoá rồi thả ra.

# 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
Mô phỏng thao tác Di chuyển theo chiều dọc (Vuốt)

Để thực hiện cử chỉ vuốt cuộn, hãy giữ điểm tiếp xúc ở toạ độ bắt đầu, gửi các khung toạ độ chuyển động trung gian và thả ở cuối.

# 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
Mô phỏng cử chỉ Chụm hai ngón tay để thu phóng

Để kích hoạt thao tác thu phóng bằng hai ngón tay, hãy sử dụng các khe cắm MT đang hoạt động (0 và 1) để theo dõi và điều phối hai toạ độ chạm đồng thời di chuyển ra xa nhau.

# 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
Mô phỏng thao tác chuyển đổi kết nối tai nghe

Mô phỏng thao tác cắm hoặc rút giắc tai nghe để kiểm thử các công tắc định tuyến âm thanh. Giá trị 1 biểu thị việc cắm giắc cắm và 0 là tháo tai nghe.

# 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
Khám phá mã sự kiện trên bảng điều khiển từ một thiết bị thực

Để khám phá chính xác chuỗi cú pháp sự kiện cho mọi thao tác tuỳ chỉnh hoặc cử chỉ nút, hãy kết nối thông qua adb shell và chạy tiện ích chẩn đoán getevent. Khi bạn tương tác với GUI trình mô phỏng, bảng điều khiển sẽ in chính xác mã sự kiện, loại và vị trí.

# 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
  • tin nhắn văn bản về sự kiện: Gửi một chuỗi ký tự mô phỏng thao tác nhấn phím. Thông điệp phải là một chuỗi UTF-8. Các bài đăng sử dụng mã Unicode sẽ được ánh xạ ngược theo bàn phím hiện tại của thiết bị, còn các ký tự không được hỗ trợ sẽ tự động bị huỷ.

Điều khiển trạng thái nguồn

  • màn hình nguồn: Cho biết trạng thái bộ sạc và pin.

  • power ac {on| off}: Đặt trạng thái sạc AC thành bật hoặc tắt.

  • trạng thái nguồn {unknown| charging| discharging| not-charging| full}: Thay đổi trạng thái pin như chỉ định.

  • power present {true| false}: Đặt trạng thái có/không có pin.

  • power health {unknown| good| overheat| dead| overvoltage| failure}: Đặt tình trạng pin.

  • tỷ lệ phần trăm dung lượng pin: Đặt trạng thái của dung lượng pin còn lại ở dạng tỷ lệ phần trăm từ 0 đến 100.

Trạng thái kết nối mạng (chỉ Ethernet và Di động)

  • network status: Kiểm tra trạng thái mạng cùng các đặc tính về độ trễ và tốc độ hiện tại.

  • network delay latency Thay đổi độ trễ mạng được mô phỏng.

    Trình mô phỏng cho phép bạn mô phỏng nhiều mức độ trễ mạng để có thể kiểm thử ứng dụng của mình trong môi trường có điều kiện chạy thực tế điển hình hơn. Bạn có thể đặt độ trễ hoặc phạm vi độ trễ khi khởi động trình mô phỏng. Bạn cũng có thể sử dụng bảng điều khiển để thay đổi độ trễ khi ứng dụng đang chạy trong trình mô phỏng.

    Sau đây là các định dạng độ trễ mạng (số có đơn vị là mili giây):

    Định dạng độ trễ mạng:

  • gprs: GPRS, sử dụng phạm vi độ trễ từ 150 đến 550.

  • edge: EDGE/EGPRS, sử dụng phạm vi độ trễ từ 80 đến 400.

  • umts: UMTS/3G, sử dụng phạm vi độ trễ từ 35 đến 200.

  • none: Không có độ trễ.

  • num: Mô phỏng độ trễ đã chỉ định bằng mili giây.

  • min:max: Mô phỏng phạm vi độ trễ đã chỉ định.

    Để đặt độ trễ khi khởi động trình mô phỏng, hãy sử dụng tuỳ chọn trình mô phỏng -netdelay với giá trị độ trễ được hỗ trợ. Ví dụ:

    emulator -netdelay gprs
    emulator -netdelay 40,100
    

    Để thay đổi độ trễ mạng trong khi trình mô phỏng đang chạy, hãy kết nối với bảng điều khiển và sử dụng lệnh network delay:

    network delay gprs
    network delay 40 100
    
  • network speed speed Trình mô phỏng cho phép bạn mô phỏng nhiều tốc độ truyền qua mạng. Bạn có thể đặt phạm vi hoặc tốc độ truyền khi khởi động trình mô phỏng. Ngoài ra, bạn cũng có thể dùng bảng điều khiển để thay đổi tốc độ khi ứng dụng đang chạy trong trình mô phỏng.

    Sau đây là các định dạng tốc độ mạng (số có đơn vị là kilobit/giây):

    Định dạng tốc độ mạng:

  • gsm: GSM/CSD, sử dụng tốc độ tải lên là 14,4 và tải xuống là 14,4.

  • hscsd: HSCSD, sử dụng tốc độ tải lên là 14,4 và tải xuống là 43,2.

  • gprs: GPRS, sử dụng tốc độ tải lên là 40 và tải xuống là 80.

  • edge: EDGE/EGPRS, sử dụng tốc độ tải lên là 118,4 và tải xuống là 236,8.

  • umts: UMTS/3G, sử dụng tốc độ tải lên là 128 và tải xuống là 1920.

  • hsdpa: HSDPA, sử dụng tốc độ tải lên là 348 và tải xuống là 14400.

  • lte: LTE, sử dụng tốc độ tải lên là 58.000 và tải xuống là 173.000.

  • evdo: EVDO, sử dụng tốc độ tải lên là 75.000 và tải xuống là 280.000.

  • full: Tốc độ không giới hạn, nhưng phụ thuộc vào tốc độ kết nối của máy tính bạn sử dụng.

  • num: Đặt tốc độ chính xác tính theo kilobit/giây dùng cho cả hoạt động tải lên và tải xuống.

  • up:down: Đặt các tốc độ chính xác tính theo kilobit/giây để dùng riêng biệt cho hoạt động tải lên và tải xuống.

    Để đặt tốc độ mạng khi khởi động trình mô phỏng, hãy dùng tuỳ chọn trình mô phỏng -netspeed. Ví dụ:

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

    Để thay đổi tốc độ mạng trong khi trình mô phỏng đang chạy, hãy kết nối với bảng điều khiển và dùng lệnh network speed:

    network speed 14.4 80
    
  • network capture {start| stop} file Gửi các gói cho tệp. Danh sách sau đây mô tả các thông số và giá trị thông số:

    Lưu ý: Kể từ Android Emulator 36.5 trở lên, lưu lượng truy cập kết nối Wi-Fi sẽ được netsim xử lý theo mặc định. Lệnh bảng điều khiển ghi lại lưu lượng truy cập mạng chỉ ghi lại lưu lượng truy cập WAN/mạng di động cũ được định tuyến thông qua ngăn xếp QEMU slirp. Để ghi lại các gói Wi-Fi, Bluetooth hoặc gói mạng nâng cao trong các phiên bản trình mô phỏng hiện đại, hãy xem phần Ghi lại lưu lượng truy cập mạng trong hướng dẫn Kết nối mạng nâng cao cho trình mô phỏng.

  • start file: Bắt đầu thu thập các gói dữ liệu có trong mạng. Để đảm bảo an toàn, tệp phải là tên tệp trần (không có dấu phân cách đường dẫn như / và không có ..). Tệp ghi lại gói sẽ được lưu trong thư mục nội dung của AVD trong thư mục console_out/ (ví dụ: ~/.android/avd/avd_name.avd/console_out/file).

  • stop file: Ngừng gửi các gói cho tệp đã chỉ định.

Mô phỏng điện thoại

Trình mô phỏng Android bao gồm các modem GSM và CDMA riêng được mô phỏng, cho phép bạn mô phỏng các chức năng điện thoại trong trình mô phỏng. Ví dụ: Với GSM, bạn có thể mô phỏng cuộc gọi điện thoại đến, cũng như thiết lập và ngắt kết nối dữ liệu. Với CDMA, bạn cung cấp nguồn đăng ký và danh sách chuyển vùng ưu tiên. Hệ thống Android xử lý các cuộc gọi được mô phỏng giống hệt như các cuộc gọi thực tế. Trình mô phỏng không hỗ trợ âm thanh cuộc gọi.

  • gsm {call| accept| cancel| busy} phonenumber Các thông số gsm như sau:

    • call: Mô phỏng cuộc gọi điện thoại đến từ số điện thoại.
    • accept: Chấp nhận cuộc gọi đến từ số điện thoại và thay đổi trạng thái cuộc gọi thành đang hoạt động. Bạn chỉ có thể thay đổi trạng thái cuộc gọi thành đang hoạt động khi cuộc gọi đang ở trạng thái chờ hoặc đang giữ.
    • cancel: Chấm dứt cuộc gọi đến từ hoặc cuộc gọi đi đến số điện thoại.
    • busy: Đóng cuộc gọi đi đến số điện thoại và thay đổi trạng thái cuộc gọi thành bận. Bạn chỉ có thể thay đổi trạng thái cuộc gọi thành bận khi cuộc gọi đang ở trạng thái chờ.
  • gsm {data| voice} state Lệnh trạng thái dữ liệu thay đổi trạng thái của kết nối dữ liệu GPRS, còn lệnh trạng thái giọng nói thay đổi trạng thái của kết nối giọng nói GPRS, như sau:

    • chưa đăng ký: Không có mạng.
    • home: Đang dùng mạng cục bộ, không chuyển vùng.
    • chuyển vùng: Đang dùng mạng chuyển vùng.
    • searching: Đang tìm kiếm mạng.
    • denied (bị từ chối): Chỉ cuộc gọi khẩn cấp.
    • off: Tương tự như unregistered.
    • on: Tương tự như ở nhà.
  • gsm hold: Thay đổi trạng thái cuộc gọi thành trạng thái giữ máy. Bạn chỉ có thể thay đổi trạng thái cuộc gọi thành trạng thái giữ máy khi cuộc gọi đang ở trạng thái hoạt động hoặc đang chờ.

  • gsm list: Liệt kê mọi cuộc gọi đến và đi cùng với trạng thái của chúng.

  • gsm status: Báo cáo trạng thái dữ liệu/giọng nói GSM hiện tại. Giá trị là những giá trị được mô tả cho lệnh thoại và lệnh dữ liệu.

  • gsm signal {rssi| ber} Thay đổi cường độ tín hiệu đã báo cáo (rssi) và tỷ lệ lỗi bit (ber) trong 15 giây cập nhật tiếp theo. Danh sách sau đây mô tả các thông số và giá trị của các thông số đó:

    • rssi: phạm vi là từ 0 đến 31 và là 99 nếu không xác định.
    • ber: phạm vi là từ 0 đến 7 và là 99 nếu không xác định.
  • gsm signal-profile num: Đặt cấu hình cường độ tín hiệu. num là một số từ 0 đến 4.

  • cdma ssource source Đặt nguồn đăng ký CDMA hiện tại, trong đó nguồn là danh sách cho phép dựa trên mạng chứa những người đăng ký của nhà mạng CDMA và giá trị của họ, như sau:

    • nv: Đọc thông tin đăng ký từ RAM bất biến.
    • ruim: Đọc thông tin đăng ký từ Mô-đun nhận dạng người dùng có thể tháo rời (RUIM).
  • cdma prl_version version: Huỷ phiên bản danh sách chuyển vùng ưu tiên (PRL) hiện tại. Số phiên bản dành cho cơ sở dữ liệu PRL chứa thông tin dùng trong quy trình lựa chọn và thu nạp hệ thống.

Quản lý các cảm biến trên trình mô phỏng

Những lệnh này liên quan đến loại cảm biến có sẵn trong AVD. Ngoài việc sử dụng lệnh cảm biến, bạn có thể xem và điều chỉnh các chế độ cài đặt trong trình mô phỏng ở màn hình Cảm biến ảo trong các thẻ Gia tốc kế và Cảm biến bổ sung.

  • trạng thái cảm biến: Liệt kê tất cả các cảm biến và trạng thái của chúng.

  • sensor get sensor-name: Lấy chế độ cài đặt cho sensor-name. Ví dụ sau đây sẽ lấy giá trị cho cảm biến gia tốc:

    sensor get acceleration
    acceleration = 2.23517e-07:9.77631:0.812348
    

    Các giá trị gia tốc được phân tách bằng dấu hai chấm(:) là các toạ độ x, y và z của các cảm biến ảo.

  • sensor set sensor-name value-x:value-y:value-z: Đặt các giá trị cho sensor-name. Ví dụ sau đây đặt cảm biến gia tốc cho các giá trị x, y và z được phân tách bằng dấu hai chấm.

    sensor set acceleration 2.23517e-07:9.77631:0.812348
    

Mô phỏng tin nhắn SMS

  • sms send sender-phone-number textmessage Tạo một tin nhắn SMS đến được mô phỏng. Danh sách sau đây mô tả các tham số và giá trị của các tham số đó:

    • sender-phone-number: Chứa một chuỗi số tuỳ ý.
    • textmessage: Tin nhắn SMS.

    Ví dụ sau đây gửi tin nhắn "hi there" (chào bạn) đến số điện thoại 4085555555:

    sms send 4085555555 hi there
    

Bảng điều khiển sẽ chuyển tiếp tin nhắn SMS đến khung Android. Từ đây, khung Android sẽ chuyển tin nhắn đó đến một ứng dụng trên trình mô phỏng có thể xử lý tin nhắn SMS, chẳng hạn như ứng dụng Tin nhắn. Nếu bạn chuyển 10 số, ứng dụng sẽ định dạng đó là số điện thoại. Các chuỗi số dài hơn hoặc ngắn hơn sẽ hiển thị theo cách bạn gửi.

Mô phỏng vân tay

  • finger touch fingerprint-id: Mô phỏng một ngón tay đang chạm vào cảm biến.

  • finger remove: Mô phỏng thao tác nhấc ngón tay.

Để biết hướng dẫn về cách sử dụng các lệnh này, hãy xem phần sau đây về mô phỏng và xác thực vân tay.

Ghi màn hình

Lệnh ghi màn hình cho phép chụp các tệp video chất lượng cao của màn hình thực của trình mô phỏng ngay từ hệ thống máy chủ. Điều này rất hữu ích cho các quy trình tích hợp liên tục và báo cáo lỗi tự động.

  • screenrecord {start| stop} file Bắt đầu hoặc dừng quá trình ghi màn hình.
    • start file: Bắt đầu quay video. Tệp đầu ra phải kết thúc bằng đuôi bắt buộc là .webm. Video đã quay sẽ được lưu ngay trong thư mục đầu ra của bảng điều khiển AVD: ~/.android/avd/avd_name.avd/console_out/file.
    • stop file: Dừng quá trình ghi màn hình đang hoạt động.

Tự động hoá và macro

Hệ thống con tự động hoá cho phép nhà phát triển ghi lại các quá trình chuyển đổi trạng thái macro trên thiết bị ảo đang chạy và phát lại các quá trình chuyển đổi đó để thực thi các quy trình kiểm thử tự động.

  • automation {record| stop-record| play| stop-play} Quản lý các bản ghi macro tự động.
    • record: Bắt đầu ghi lại các thay đổi về trạng thái và dữ liệu đầu vào của thiết bị.
    • stop-record: Dừng phiên ghi macro hiện tại.
    • play: Bắt đầu phát lại một chuỗi macro đã ghi.
    • stop-play: Dừng chuỗi phát macro đang hoạt động.

Vật lý (6DoF)

Các lệnh vật lý quản lý việc ghi nhật ký tư thế không gian cơ sở thực tế cho các mô hình chuyển động vật lý 6 bậc tự do (6DoF), được dùng để mô phỏng tính năng theo dõi chuyển động nâng cao.

  • physics {record-gt| stop} Quản lý các bản ghi mô hình tư thế thực tế.
    • record-gt: Bắt đầu ghi lại dữ liệu chuyển động 6DoF thực tế.
    • stop: Dừng quy trình ghi dữ liệu thực tế hiện tại.

Điều khiển thiết bị nâng cao

Phần này tổng hợp các điểm cuối lệnh của bảng điều khiển có tính chuyên môn cao cho các cấu hình mô phỏng nâng cao, bao gồm cả proxy mạng, cấu hình nhiều màn hình, ghi đè kết xuất và gỡ lỗi trực tiếp siêu giám sát.

  • multidisplay {add| del} Thêm hoặc xoá màn hình ảo phụ để kiểm thử cấu hình nhiều màn hình. Lưu ý: Các màn hình phụ không được hỗ trợ trên các cấu hình có thể gập lại như Pixel Fold hoặc Trình mô phỏng có thể đổi kích thước.

  • proxy {set| clear} Định cấu hình chương trình chuyển tiếp proxy mạng theo cách lập trình từ bảng điều khiển.

    • set host port: Định cấu hình chế độ cài đặt proxy mục tiêu.
    • clear: Đặt lại cấu hình proxy về mặc định. Lưu ý: Các thao tác đặt proxy không thành công trong môi trường thực thi không có giao diện người dùng.
  • virtualscene-image {wall| table} image_path Tuỳ chỉnh tường nền hoặc bàn ngang xuất hiện trên nguồn cấp dữ liệu từ camera cảnh ảo bằng một tệp hình ảnh tuỳ chỉnh của người dùng.

  • resize-display scale Điều chỉnh linh hoạt độ phân giải màn hình giữa các tỷ lệ đặt sẵn. Lưu ý: Các chế độ điều chỉnh độ phân giải không được hỗ trợ trong cấu hình không đầu.

  • nodraw {on| off} Tắt tính năng kết xuất GUI thực trên màn hình máy chủ lưu trữ để giảm bộ nhớ hệ thống và mức tải GPU trong quá trình chạy tự động không có giao diện người dùng ở chế độ nền với số lượng lớn.

  • grpc port Định cấu hình chế độ kiểm soát thiết bị có lập trình nâng cao thông qua các điểm cuối cổng gRPC tuỳ chỉnh.

  • qemu monitor Cung cấp quyền truy cập trực tiếp vào thiết bị đầu cuối tương tác cho bảng điều khiển của trình giám sát siêu ảo hoá cơ bản. Bạn chỉ có thể nhập lệnh này qua các phiên bảng điều khiển Telnet đang hoạt động.

  • icebox track pid Cho phép chụp nhanh hệ thống tự động khi quy trình ứng dụng đã chỉ định gặp phải một ngoại lệ hoặc sự cố chưa được xử lý.

  • phonenumber number Đặt số điện thoại ảo tại địa phương của thiết bị mục tiêu.

Giao diện lập trình gRPC

Các phiên bản trình mô phỏng hiện đại hỗ trợ một giao diện lập trình gRPC mạnh mẽ cùng với bảng điều khiển Telnet cũ. Mặc dù bảng điều khiển Telnet rất phù hợp cho các phiên tương tác nhanh hoặc tập lệnh đơn giản, nhưng giao diện gRPC được thiết kế để mang lại hiệu suất cao, khả năng kiểm soát tự động an toàn và mạnh mẽ trong quá trình tích hợp liên tục (CI) và môi trường không có giao diện người dùng. Bằng cách cung cấp các điểm cuối dịch vụ trực tiếp, gRPC giúp bạn không cần phân tích cú pháp luồng văn bản, quản lý các bắt tay phiên đầu cuối hoặc hiển thị các cổng localhost chưa mã hoá.

Để giúp bạn chọn giữa bảng điều khiển Telnet cũ và giao diện lập trình gRPC hiện đại, hãy xem thông tin so sánh sau đây về hiệu suất, tính bảo mật và khả năng của các tính năng:

Tính năng Bảng điều khiển Telnet Giao diện gRPC
Phù hợp nhất với Gỡ lỗi thủ công, các phiên tương tác. CI/CD không giao diện người dùng, các thiết bị kiểm thử tự động hạng nặng.
Speed Chậm hơn; chi phí văn bản, độ trễ kết nối. Được tối ưu hoá; HTTP/2 được ghép kênh, giao thức nhanh.
Bảo mật Không mã hoá; cổng cục bộ (5554–5585). Có thể được bảo mật bằng TLS, hoạt động trên các mạng.
Sự kiện phát trực tiếp Không được hỗ trợ; chỉ có yêu cầu-phản hồi. Luồng cho logcat, tính năng ghi âm thanh của khách.
Nội dung đa phương tiện Ghi tệp đầu ra vào ổ đĩa máy chủ/khách. Các vùng đệm nhị phân trực tiếp qua mạng.
Hệ điều hành khách Chỉ giới hạn ở các lệnh cố định của trình mô phỏng. Chạy các lệnh shell bash gốc của khách.

Khởi chạy và gọi gRPC

Để sử dụng các điểm cuối gRPC, hãy chạy Trình mô phỏng Android qua dòng lệnh và thêm cờ -grpc, chỉ định cổng phản hồi vòng lặp mục tiêu.

# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold

Sau khi trình mô phỏng chạy với dịch vụ gRPC đã bật, bạn có thể thực hiện các lệnh gọi RPC theo chương trình. Để kiểm thử dòng lệnh, hãy dùng tiện ích grpcurl để giao tiếp với các dịch vụ của trình mô phỏng. Tất cả các yêu cầu đều được định dạng ở JSON và được gửi qua văn bản thuần tuý.

# 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

Ánh xạ bảng điều khiển Telnet sang dịch vụ gRPC

Bảng tham chiếu sau đây liên kết các lệnh của bảng điều khiển Telnet cũ với các phương thức và dịch vụ gRPC tương ứng, cho biết cách tự động hoá các hoạt động tương tác phổ biến với thiết bị ảo theo phương thức lập trình:

Danh mục Lệnh Telnet cũ Dịch vụ / Phương thức gRPC
Trạng thái ping EmulatorController/getStatus
Trạng thái avd name incubating.AvdService/getAvdInfo
Trạng thái kill EmulatorController/setVmState
Trạng thái restart EmulatorController/setVmState
Power power display EmulatorController/getBattery
Power power capacity EmulatorController/setBattery
Geo Loc geo fix EmulatorController/setGps
Cảm biến sensor set incubating.SensorService/setSensor
Sinh trắc học finger touch EmulatorController/sendFingerprint
Tư thế posture EmulatorController/setPosture
Tư thế physics/fold EmulatorController/setPhysicalModel
SMS sms send EmulatorController/sendSms
Cuộc gọi GSM gsm call EmulatorController/sendPhone
Cuộc gọi GSM phonenumber EmulatorController/setPhoneNumber
Chuyển hướng redir add Waterfall/ForwardPort
Input event send EV_KEY EmulatorController/sendKey
Input event send EV_ABS EmulatorController/sendTouch
Nội dung đa phương tiện screenrecord incubating.ScreenRecording
Kết xuất nodraw EmulatorController/setDisplayMode
Ảnh chụp nhanh avd snapshot list SnapshotService/ListSnapshots
Ảnh chụp nhanh avd snapshot load/save SnapshotService/LoadSnapshot

Các lệnh có lập trình dành riêng cho gRPC

Giao diện gRPC cung cấp một số chức năng tiên tiến mà không thể thực hiện được qua các kết nối bảng điều khiển Telnet cũ. Các tính năng này bao gồm truyền trực tiếp logcat, ghi hoặc chèn âm thanh hai chiều, sửa đổi GUI máy chủ và truy cập trực tiếp vào shell.

Dịch vụ / Phương thức gRPC Tham số Chức năng
streamLogcat {"maxLines": 100} Truyền trực tuyến đầu ra logcat của hệ thống khách
streamAudio {} Truyền âm thanh của loa qua dây
injectAudio {"audio": "..."} Chèn luồng âm thanh từ micrô
UiController {"theme": "DARK"} Sửa đổi các chủ đề cửa sổ của cửa sổ máy chủ
Waterfall/Exec {"cmd": "ls"} Chạy các lệnh shell của hệ điều hành khách gốc

Mô phỏng và xác thực vân tay

Hình 1. Màn hình xác thực vân tay.

Sử dụng lệnh finger để mô phỏng và xác thực vân tay cho ứng dụng của bạn. Bạn cần có Bộ công cụ SDK 24.3 trở lên và Android 6.0 (cấp độ API 23) trở lên.

Để mô phỏng và xác thực vân tay, hãy làm theo các bước sau:

  1. Nếu bạn chưa có mã nhận dạng vân tay, hãy đăng ký vân tay mới trong trình mô phỏng bằng cách chọn Settings > Security > Fingerprint (Cài đặt > Bảo mật > Vân tay) và làm theo hướng dẫn đăng ký.

  2. Thiết lập sao cho ứng dụng của bạn chấp nhận xác thực bằng vân tay. Sau khi bạn thiết lập như vậy, thiết bị của bạn sẽ hiển thị màn hình xác thực vân tay.

  3. Trong khi ứng dụng hiển thị màn hình xác thực vân tay, hãy chuyển đến bảng điều khiển rồi nhập lệnh finger touch và mã nhận dạng vân tay bạn đã tạo. Lệnh này sẽ mô phỏng thao tác nhấn ngón tay.

  4. Sau đó, nhập lệnh finger remove để mô phỏng thao tác nhấc ngón tay ra. Ứng dụng của bạn phải phản hồi như thể người dùng đã chạm rồi nhấc ngón tay ra khỏi cảm biến vân tay.