Một lớp monkeyrunner tượng trưng cho một thiết bị hoặc trình mô phỏng có thể được truy cập bởi máy trạm đang chạy monkeyrunner
.
Lớp này dùng để điều khiển một thiết bị Android hoặc trình mô phỏng. Các phương thức sẽ gửi sự kiện giao diện người dùng, truy xuất thông tin, cài đặt cũng như xoá và chạy các ứng dụng.
Bạn thường không cần tạo bản sao của lớp MonkeyDevice
. Thay vào đó, bạn sẽ sử dụng phương thức
MonkeyRunner.waitForConnection()
để tạo một đối tượng mới từ liên kết thiết bị hoặc trình mô phỏng. Ví dụ, thay vì dùng:
newdevice = MonkeyDevice()
bạn nên dùng:
newdevice = MonkeyRunner.waitForConnection()
Tóm tắt
Hằng số | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
string | DOWN |
Sử dụng hằng số này cùng đối số type tương ứng với phương thức press() hoặc touch()
để gửi sự kiện DOWN.
|
|||||||||
string | UP |
Sử dụng hằng số này với đối số type tương ứng với phương thức press() hoặc touch()
để gửi sự kiện UP.
|
|||||||||
string | DOWN_AND_UP |
Sử dụng hằng số này với đối số type tương ứng với phương thức press() hoặc touch()
để lập tức gửi một sự kiện DOWN kèm theo một sự kiện UP.
|
Phương thức | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Truyền phát một Ý định (Intent) đến thiết bị này, như thể Ý định này đến từ ứng dụng.
|
||||||||||
|
Mô phỏng một cử chỉ kéo (chạm, giữ và di chuyển) trên màn hình thiết bị.
|
||||||||||
|
Tên của biến môi trường trong hệ thống sẽ trả về giá trị của biến đó cho thiết bị này.
Bạn có thể xem các tên biến khả dụng tại phần mô tả chi tiết của phương thức này.
|
||||||||||
|
. API này tương đương với
adb shell getprop <key>. This is provided for use
by platform developers.
|
||||||||||
|
Cài đặt ứng dụng Android hoặc gói kiểm thử nằm trong packageFile trên thiết bị. Trong trường hợp ứng dụng hoặc gói kiểm thử đã được cài đặt sẵn, ứng dụng hoặc gói kiểm thử đó sẽ được thay thế.
|
||||||||||
|
Chạy thành phần được chỉ định trong khả năng đo lường Android rồi trả về dữ liệu kiểu từ điển có định dạng chính xác như thành phần đang chạy quy định. Thành phần này buộc phải có trên thiết bị.
|
||||||||||
|
Gửi sự kiện phím xác định bởi đối số type tới khoá được chỉ định bằng mã phím.
|
||||||||||
|
Khởi động lại thiết bị này với trình tải khởi động, chỉ định bởi bootloadType.
|
||||||||||
|
Xoá gói chỉ định khỏi thiết bị, bao gồm cả dữ liệu và bộ nhớ đệm trong gói.
|
||||||||||
|
Thực thi câu lệnh shell
adb và trả về kết quả (nếu có).
|
||||||||||
|
Bắt đầu một Hoạt động trên thiết bị này bằng cách gửi một Ý định được tạo từ các đối số đã cấp.
|
||||||||||
MonkeyImage
|
Chụp toàn bộ vùng đệm màn hình trên thiết bị, thu được một đối tượng
MonkeyImage
chứa ảnh chụp màn hình đang hiển thị.
|
||||||||||
|
Gửi một sự kiện chạm xác định bởi đối số type đến vị trí trên màn hình xác định theo x và y.
|
||||||||||
|
Gửi các ký tự dưới dạng gói tin tới thiết bị, như thể các ký tự đó được nhập trên bàn phím thiết bị. Điều này tương đương với việc gọi phương thức
press() cho mỗi mã phím trong message bằng cách sử dụng kiểu sự kiện phím DOWN_AND_UP .
|
||||||||||
|
Đánh thức màn hình thiết bị.
|
Hằng số
string DOWN
string UP
string DOWN_AND_UP
Phương thức công khai
void broadcastIntent ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
Truyền phát một Ý định đến thiết bị này, như thể Ý định này đến từ ứng dụng. Hãy xem Intent
để biết thêm thông tin về đối số.
Đối số
uri |
URI cho Ý định.
(xem Intent.setData() ).
|
---|---|
action |
Hành động cho Ý định này (xem Intent.setAction() ).
|
data |
URI dữ liệu cho Ý định này (xem Intent.setData() ).
|
mimetype |
Kiểu MIME cho Ý định (xem Intent.setType() ).
|
categories |
Cấu trúc dữ liệu kiểu lặp (iterable data structure) chứa chuỗi xác định loại Ý định (xem Intent.addCategory() ).
|
extras |
Dữ liệu bổ sung kiểu từ điển cho Ý định này (xem ví dụ tại Intent.putExtra() ).
Khoá cho mỗi từ điển dữ liệu phải là kiểu chuỗi. Giá trị của mục này có thể là bất kỳ kiểu dữ liệu đơn giản hoặc có cấu trúc nào. |
component |
Là thành phần của Ý định này (xem ComponentName ). Việc sử dụng đối số này sẽ điều hướng Ý định đến một lớp cụ thể trong một gói Android xác định.
|
flags |
Cấu trúc dữ liệu kiểu lặp chứa cờ sẽ kiểm sẽ soát cách Ý định xử lý (xem Intent.setFlags() ).
|
void drag ( tuple start, tuple end, float duration, integer steps)
Mô phỏng một cử chỉ kéo (chạm, giữ và di chuyển) trên màn hình thiết bị.
Đối số
start | Điểm bắt đầu của cử chỉ kéo, dưới dạng bộ dữ liệu (tuple) (x, y), trong đó x và y là số nguyên. |
---|---|
end | Điểm kết thúc của cử chỉ kéo, dưới dạng bộ dữ liệu (x, y), trong đó x và y là số nguyên. |
duration | Thời lượng diễn ra cử chỉ kéo tính bằng giây. Giá trị mặc định là 1,0 giây. |
steps | Số bước cần thực hiện khi nội suy điểm. Giá trị mặc định là 10. |
object getProperty (string key)
Tên của biến môi trường trong hệ thống sẽ trả về giá trị của biến đó cho thiết bị này.
Đối số
key | Tên của biến môi trường trong hệ thống. Các tên biến khả dụng được liệt kê trong Bảng 1. Tên biến thuộc tính nằm cuối chủ đề này. |
---|
Giá trị trả về
- Giá trị của biến. Định dạng dữ liệu thay đổi tuỳ theo yêu cầu của biến.
object getSystemProperty (string key)
Đồng nghĩa với getProperty()
.
Đối số
key | Tên của biến môi trường trong hệ thống. Các tên biến khả dụng được liệt kê trong Bảng 1. Tên biến thuộc tính. |
---|
Giá trị trả về
- Giá trị của biến. Định dạng dữ liệu thay đổi tuỳ theo yêu cầu của biến.
void installPackage (string path)
Cài đặt ứng dụng Android hoặc gói kiểm thử chứa trong packageFile trên thiết bị. Trong trường hợp ứng dụng hoặc gói kiểm thử đã được cài đặt sẵn, ứng dụng hoặc gói kiểm thử đó sẽ được thay thế.
Đối số
path |
Đường dẫn và tên tệp hợp lệ của tệp .apk dùng để cài đặt.
|
---|
dictionary instrument ( string className, dictionary args)
Chạy thành phần được chỉ định với khả năng đo lường Android rồi trả về kết quả kiểu từ điển có định dạng chính xác như thành phần đang chạy quy định. Thành phần này buộc phải có trên thiết bị.
Sử dụng phương thức này để bắt đầu kịch bản kiểm thử sử dụng một trong các lớp kịch bản kiểm thử của Android. Hãy xem bài viết Thông tin cơ bản về kiểm thử để tìm hiểu thêm về quy trình kiểm thử đơn vị bằng khung kiểm thử Android.
Đối số
className |
Tên của một thành phần Android được cài đặt trên thiết bị, dưới hình thức packagename/classname chuẩn, trong đó packagename là tên gói Android của tệp .apk trên thiết bị và classname là tên lớp của một thành phần Android (Activity, ContentProvider, Service hoặc BroadcastReceiver) cũng trong tệp đó. Tên gói và tên lớp phải đồng thời đủ điều kiện. Hãy xem ComponentName để biết thêm thông tin.
|
---|---|
args | Dữ liệu kiểu từ điển chứa cờ và giá trị các cờ đó. Các dữ liệu này sẽ được truyền tới các thành phần từ đầu. Nếu cờ không nhận giá trị, hãy đặt giá trị kiểu từ điển cờ thành chuỗi rỗng. |
Giá trị trả về
-
Kết quả chạy của thành phần trả về dưới dạng dữ liệu kiểu từ điển. Nội dung của giá trị đó do chính thành phần đó xác định.
Nếu bạn sử dụng
InstrumentationTestRunner
làm tên lớp cho đối số componentName, thì dữ liệu kiểu từ điển trả về sẽ chứa một khoá "stream" duy nhất. Giá trị của "stream" là một chuỗi chứa kết quả đầu ra của quy trình kiểm thử, giống như khiInstrumentationTestRunner
chạy thông qua dòng lệnh. Định dạng của giá trị trả về này được mô tả trong phần kiểm thử trong các IDE khác.
void press (string name, integer type)
Gửi sự kiện phím do type
chỉ định đến khoá do keycode
chỉ định.
Đối số
name |
Tên của mã phím cần gửi đi. Hãy xem KeyEvent để biết danh sách tên mã phím khả dụng. Hãy sử dụng tên mã phím thay vì giá trị số nguyên của mã.
|
---|---|
type |
Loại sự kiện quan trọng cần gửi. Các giá trị hợp lệ là
DOWN , UP và DOWN_AND_UP .
|
void reboot (string bootloadType)
Khởi động lại thiết bị này với trình tải khởi động, chỉ định bởi bootloadType
.
Đối số
into | Loại trình tải khởi động dùng để khởi động lại. Bạn có thể sử dụng các giá trị sau: "bootloader", "recovery" hoặc "None". |
---|
void removePackage (string package)
Xoá gói chỉ định khỏi thiết bị, bao gồm cả dữ liệu và bộ nhớ đệm trong gói.
Đối số
package |
Tên gói Android của tệp .apk trên thiết bị.
|
---|
object shell (string cmd)
Thực thi câu lệnh shell adb
và trả về kết quả (nếu có).
Đối số
⌘ Cmd |
Lệnh thực thi trong môi trường shell adb . Hình thức của các lệnh này được mô tả trong chủ đề Cầu gỡ lỗi Android.
|
---|
Giá trị trả về
- Kết quả chạy của lệnh (nếu có). Định dạng của giá trị trả về được xác định theo lệnh.
void startActivity ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
Bắt đầu một Hoạt động trên thiết bị bằng cách gửi một Ý định được tạo từ các đối số đã cấp.
Đối số
uri |
URI cho Ý định.
(xem Intent.setData() ).
|
---|---|
action |
Hành động cho Ý định (xem Intent.setAction() ).
|
data |
URI dữ liệu cho Ý định (xem Intent.setData() ).
|
mimetype |
Kiểu MIME cho Ý định (xem Intent.setType() ).
|
categories |
Cấu trúc dữ liệu kiểu lặp có chứa chuỗi xác định danh mục cho Ý định (xem Intent.addCategory() ).
|
extras |
Dữ liệu kiểu từ điển bổ sung cho Ý định (xem ví dụ về Intent.putExtra() ).
Khoá cho mỗi từ điển dữ liệu phải là kiểu chuỗi. Giá trị của mục này có thể là bất kỳ kiểu dữ liệu đơn giản hoặc có cấu trúc nào. |
component |
Thành phần của Ý định này (xem ComponentName ). Việc sử dụng đối số này sẽ chuyển hướng Intent đến một lớp cụ thể trong một gói Android xác định.
|
flags |
Cấu trúc dữ liệu kiểu lặp chứa cờ sẽ kiểm sẽ soát cách Ý định xử lý (xem Intent.setFlags() ).
|
MonkeyImage
takeSnapshot
()
Chụp toàn bộ vùng đệm màn hình trên thiết bị, thu được chứa ảnh chụp màn hình đang hiển thị.
Giá trị trả về
- Đối tượng MonkeyImage chứa hình ảnh của màn hình đang hiển thị.
void touch ( integer x, integer y, string type)
Gửi một sự kiện chạm xác định bởi đối số type đến vị trí trên màn hình xác định theo x và y.
Đối số
x | Vị trí theo chiều ngang của thao tác chạm trên pixel trong thực tế của thiết bị, tính từ bên trái màn hình theo hướng màn hình lúc này. |
---|---|
y | Vị trí theo chiều dọc của thao tác chạm trên pixel trong thực tế của thiết bị, tính từ đầu màn hình theo hướng màn hình lúc này. |
type |
Loại sự kiện quan trọng cần gửi. Các giá trị hợp lệ là
DOWN , UP và DOWN_AND_UP .
|
void type (string message)
Gửi các ký tự dưới dạng gói tin tới thiết bị, như thể các ký tự đó được nhập trên bàn phím thiết bị. Điều này tương đương với việc gọi phương thức press()
cho mỗi mã phím trong message
bằng cách sử dụng kiểu sự kiện phím DOWN_AND_UP
.
Đối số
message | Một chuỗi chứa các ký tự bạn muốn gửi. |
---|
void wake ()
Đánh thức màn hình thiết bị.
Phụ lục
Nhóm thuộc tính | Thuộc tính | Mô tả | Lưu ý |
---|---|---|---|
build |
board |
Tên mã cho bảng hệ thống của thiết bị |
xem Build
|
brand |
Nhà mạng hoặc nhà cung cấp dịch vụ của hệ điều hành. | ||
device |
Tên thiết kế của thiết bị. | ||
fingerprint |
Giá trị nhận dạng duy nhất của bản dựng đang chạy hiện tại. | ||
host |
|||
ID |
Nhãn hoặc mã danh sách thay đổi. | ||
model |
Tên hiển thị cho người dùng cuối của thiết bị. | ||
product |
Tên sản phẩm tổng thể. | ||
tags |
Các thẻ được phân tách bằng dấu phẩy mô tả bản dựng, chẳng hạn như "unsigned" và "debug". | ||
type |
Loại bản dựng, chẳng hạn như "user" hoặc "eng". | ||
user |
|||
CPU_ABI |
Tên của tập lệnh dành cho mã gốc, dưới dạng CPU ngoại cỡ theo quy ước ABI. | ||
manufacturer |
Nhà sản xuất sản phẩm/phần cứng. | ||
version.incremental |
Mã nội bộ mà hệ thống kiểm soát nguồn sử dụng thể hiện phiên bản phần mềm. | ||
version.release |
Tên hiển thị cho người dùng của phiên bản phần mềm này. | ||
version.sdk |
Phiên bản SDK hiển thị cho người liên kết với phiên bản hệ điều hành này. | ||
version.codename |
Tên mã phát triển hiện tại hay "REL" nếu phiên bản phần mềm này đã được phát hành. | ||
display |
width |
Chiều rộng màn hình thiết bị tính theo pixel. | Hãy xem DisplayMetrics để biết chi tiết. |
height |
Chiều cao hiển thị của thiết bị tính theo pixel. | ||
density |
Mật độ logic của màn hình. Đây là một hệ số để điều chỉnh theo tỷ lệ theo đơn vị DIP (pixel không phụ thuộc vào mật độ) theo độ phân giải của thiết bị. DIP được điều chỉnh sao cho 1 DIP tương đương với 1 pixel trên một màn hình hiển thị 160 pixel trên inch. Ví dụ: trên màn hình 160 dpi, mật độ = 1,0, trong khi trên màn hình 120 dpi, mật độ = 0,75.
Giá trị này không tuân theo chính xác kích thước màn hình thực nhưng được điều chỉnh để phù hợp với các thay đổi đáng kể dựa trên DPI màn hình. Hãy xem |
||
am.current |
package |
Tên gói Android của gói đang chạy. |
Các khoá am.current sẽ trả về thông tin về Hoạt động đang chạy.
|
action |
Hành động hiện tại. Phần này có cùng định dạng với thuộc tính name của phần tử action trong tệp kê khai gói.
|
||
comp.class |
Tên lớp của thành phần bắt đầu hoạt động hiện tại. Hãy xem comp.package để biết thêm chi tiết. |
||
comp.package |
Tên gói của thành phần bắt đầu hoạt động hiện tại. Thành phần được xác định theo tên gói và tên lớp của gói chứa thành phần đó. | ||
data |
Dữ liệu (nếu có) có trong Ý định bắt đầu Hoạt động hiện tại. | ||
categories |
Các danh mục do Ý định bắt đầu Hoạt động hiện tại chỉ định. | ||
clock |
realtime |
Số mili giây kể từ khi thiết bị khởi động lại, bao gồm cả thời gian ngủ sâu. |
Hãy xem SystemClock để biết thêm thông tin.
|
uptime |
Số mili giây kể từ khi thiết bị khởi động lại, không tính thời gian ngủ sâu | ||
millis |
thời gian hiện tại kể từ thời gian bắt đầu của hệ thống UNIX, tính theo mili giây. |