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 Android và Bắ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:
Mở cửa sổ dòng lệnh và nhập lệnh sau:
telnet localhost console-portTiê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 devicesin 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ộ.
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_tokenphải phù hợp với nội dung của tệp.emulator_console_auth_tokentrong thư mục gốc.Nếu tệp đó không tồn tại, lệnh
telnet localhost console-portsẽ 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_tokenhoặc tạo một tệp trống nếu không có tệp đó.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 commandhoặchelp-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ể.Để thoát khỏi phiên điều khiển, hãy nhập
quithoặcexit.
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 firstactivitysnapshotfold: 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-portThê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-portXoá 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 OKevent 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ã | 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ã | 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ã | 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đếnKEY_Z(26 mã). - Các phím trên bàn phím số:
KEY_1đếnKEY_0(10 mã).
| 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đếnKEY_F24(24 mã).
| 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ã | 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ã | 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
| Mã | 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ế.
| Mã | 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.
| Mã | 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 latencyThay đổ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
-netdelayvớ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 100network speed speedTrì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 80network capture {start| stop} fileGử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ụcconsole_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} phonenumberCá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} stateLệ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.812348Cá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 textmessageTạ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} fileBắ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.
- 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à
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_pathTuỳ 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 monitorCung 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 pidCho 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
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:
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ý.
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.
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 touchvà 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.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.