Małpie urządzenie

Klasa monkeyrunner reprezentująca urządzenie lub emulator dostępny dla stacji roboczej z systemem monkeyrunner.

Ta klasa służy do sterowania urządzeniem z Androidem lub emulatorem. Metody te wysyłają zdarzenia interfejsu, pobierają informacje, instalują i usuwają aplikacje oraz uruchamiają aplikacje.

Zwykle nie musisz tworzyć instancji MonkeyDevice. Zamiast tego użyj MonkeyRunner.waitForConnection(), aby utworzyć nowy obiekt na podstawie połączenia z urządzeniem lub emulatorem. Zamiast np.:

newdevice = MonkeyDevice()

należy użyć:

newdevice = MonkeyRunner.waitForConnection()

Podsumowanie

Stałe
ciąg znaków PIONOWO Użyj tego argumentu z argumentem type press() lub touch() , aby wysłać zdarzenie DOWN.
ciąg znaków W GÓRĘ Użyj tego argumentu type z wartością press() lub touch() , aby wysłać zdarzenie UP.
ciąg znaków W DÓŁ_I_W GÓRĘ Użyj tej opcji z argumentem type press() lub touch() , aby wysłać zdarzenie DOWN, a po nim zdarzenie W GÓRĘ.
Metody
void broadcastIntent (identyfikator URI ciągu znaków, działanie ciąg znaków, dane ciągu znaków, typ MIME ciągu znaków, elementy iterable kategorii słownik, komponent komponent, flagi iterowalne)
Rozgłasza intencję do tego urządzenia, tak jakby pochodziła z aplikacji.
void przeciągnij (początek kropki, koniec kropki, czas trwania zmiennoprzecinkowej, kroki całkowite)
Symuluje gest przeciągania (dotknięcie, przytrzymanie i przesunięcie) na ekranie urządzenia.
object getProperty (klucz ciągu znaków)
Biorąc pod uwagę nazwę systemowej zmiennej środowiskowej, zwraca jej wartość dla tego urządzenia. Dostępne nazwy zmiennych znajdziesz w szczegółowym opisie tej metody.
object getSystemProperty (klucz ciągu znaków)
. Odpowiednik interfejsu API adb shell getprop <key>. This is provided for use by platform developers.
void installPackage (ścieżka ciągu znaków)
Instaluje na urządzeniu aplikację na Androida lub pakiet testowy zawarte w pliku packageFile. Jeśli aplikacja lub pakiet testowy jest już zainstalowany, zostanie zastąpiony.
słownik instrument (ciąg znaków className, argumenty słownik)
Uruchamia określony komponent w sekcji instrumentacji Androida i zwraca wyniki w słowniku, którego dokładny format jest określany przez uruchamiany komponent. Komponent musi już występować na tym urządzeniu.
void press (nazwa ciągu znaków, typ słownika)
Wysyła kluczowe zdarzenie określone przez typ do klucza określonego w kodzie klucza.
void restartuj (ciąg znaków do)
Uruchamia ponownie urządzenie w programie rozruchowym określonym przez typ bootloadType.
void removePackage (pakiet z ciągiem)
Usuwa określony pakiet z tego urządzenia, w tym dane i pamięć podręczną.
object shell (ciąg znaków cmd)
Wykonuje polecenie powłoki adb i zwraca wynik (jeśli istnieje).
void startActivity (identyfikator URI ciągu znaków, działanie ciąg znaków, dane ciągu znaków, typ MIME ciągu znaków, kategorie słowniki, dodatki słownik, komponent komponent, flagi)
Uruchamia działanie na tym urządzeniu przez wysłanie intencji utworzonej na podstawie podanych argumentów.
MonkeyImage takeSnapshot()
Przechwytuje cały bufor ekranu tego urządzenia, uzyskując obiekt MonkeyImage zawierający zrzut ekranu bieżącego wyświetlacza.
void touch (liczba całkowita x, liczba całkowita y, typ liczba całkowita)
Wysyła zdarzenie dotknięcia określone przez typ do lokalizacji na ekranie określonej przez x i y.
void type (komunikat: ciąg znaków)
Wysyła znaki zawarte w wiadomości na tym urządzeniu tak, jakby zostały wpisane na klawiaturze urządzenia. Odpowiada to wywołaniu press() dla każdego kodu klucza w obiekcie message za pomocą typu kluczowego zdarzenia DOWN_AND_UP.
void wybudzenie ()
Wybudza ekran tego urządzenia.

Stałe

ciąg znaków DOWN

Wartość press() lub touch(). Określa, że w przypadku naciśnięcia klawisza lub dotknięcia ekranu do urządzenia ma być wysyłane zdarzenie W DÓŁ.

ciąg znaków W GÓRĘ

Wartość press() lub touch(). Określa, że do urządzenia powinno być wysyłane zdarzenie związane z włączeniem, co odpowiada zwolnieniu klucza lub podniesieniu ekranu.

ciąg znaków DOWN_AND_UP

Wartość press(), touch() lub type(). Określa, że w związku z wpisaniem klawisza lub kliknięciem ekranu ma być wysyłane do urządzenia typ zdarzenia W DÓŁ, a po nim typ zdarzenia W górę.

Metody publiczne

void broadcastIntent ( string uri, string action, string data, string MIMEtype, iterable campaigns dictionary extras, component, flagi iterable)

Rozgłasza intencję do tego urządzenia, tak jakby pochodziła z aplikacji. Więcej informacji o argumentach znajdziesz w sekcji Intent.

Argumenty
identyfikator URI Identyfikator URI intencji. (patrz Intent.setData()).
działanie Działanie związane z tą intencją (patrz Intent.setAction()).
dane Identyfikator URI danych dla tej intencji (patrz Intent.setData()).
typ MIME Typ MIME intencji (patrz Intent.setType()).
kategorie Iterowa struktura danych zawierająca ciągi znaków, które definiują kategorie tej intencji (patrz Intent.addCategory()).
dodatki Słownik z dodatkowymi danymi na potrzeby tej intencji (przykład znajdziesz tutaj: Intent.putExtra()).

Kluczem dla każdego elementu słownika powinien być ciąg znaków. Wartością elementu może być dowolny typ danych uporządkowanych lub prosty.

składnik Komponent tej intencji (patrz ComponentName). Użycie tego argumentu przekieruje intencję do określonej klasy w ramach określonego pakietu na Androida.
flagi Iterowa struktura danych zawierająca flagi, które kontrolują sposób obsługi intencji (patrz Intent.setFlags()).

void przeciągnij (początek kropki, koniec kropki, czas trwania zmiennoprzecinkowy, kroki całkowite)

Symuluje gest przeciągania (dotknięcie, przytrzymanie i przesunięcie) na ekranie urządzenia.

Argumenty
start Punkt początkowy gestu przeciągania, w postaci kropki (x,y), gdzie x i y to liczby całkowite.
wartość końcowa Punkt końcowy gestu przeciągania, w postaci kropki (x,y), gdzie x i y to liczby całkowite.
czas trwania Czas trwania gestu przeciągania w sekundach. Wartość domyślna to 1,0 sekundy.
kroki Liczba kroków do wykonania przy interpolacji punktów. Wartość domyślna to 10.

object getProperty (klucz ciągu znaków)

Biorąc pod uwagę nazwę systemowej zmiennej środowiskowej, zwraca jej wartość dla tego urządzenia.

Argumenty
klucz Nazwa systemowej zmiennej środowiskowej. Dostępne nazwy zmiennych są wymienione w tabeli 1. Nazwy zmiennych usługi na końcu tego tematu.
Zwroty
  • Wartość zmiennej. Format danych zależy od żądanej zmiennej.

object getSystemProperty (klucz ciągu znaków)

Synonim terminu getProperty().

Argumenty
klucz Nazwa systemowej zmiennej środowiskowej. Dostępne nazwy zmiennych są wymienione w tabeli 1. Nazwy zmiennych usługi.
Zwroty
  • Wartość zmiennej. Format danych zależy od żądanej zmiennej.

void installPackage (ścieżka ciągu znaków)

Instaluje na urządzeniu aplikację na Androida lub pakiet testowy zawarte w pliku packageFile. Jeśli aplikacja lub pakiet testowy jest już zainstalowany, zostanie zastąpiony.

Argumenty
ścieżka Pełna ścieżka i nazwa pliku .apk do zainstalowania.

dictionary instrument ( string className, dictionary arguments)

Uruchamia określony komponent z instrumentacją Androida i zwraca wyniki w słowniku, którego dokładny format jest określany przez uruchamiany komponent. Komponent musi już występować na tym urządzeniu.

Korzystając z tej metody, możesz uruchomić przypadek testowy z wykorzystaniem jednej z klas przypadku testowego Androida. Więcej informacji o testowaniu jednostkowym za pomocą platformy testowania Androida znajdziesz w artykule Podstawy testowania.

Argumenty
NazwaKlasa Nazwa komponentu Androida zainstalowanego już na tym urządzeniu w standardowej postaci nazwa_pakietu/nazwa_klasy, gdzie nazwa_pakietu to nazwa pakietu na Androida pliku .apk na urządzeniu, a nazwa klasy to nazwa klasy komponentu Androida (Activity, ContentProvider, Service lub Broadcastr) w danym pliku. Zarówno nazwa pakietu, jak i nazwa klasy muszą być pełne. Więcej informacji znajdziesz tutaj: ComponentName.
argumenty Słownik zawierający flagi i ich wartości. Są one przekazywane do komponentu w trakcie jego uruchamiania. Jeśli flaga nie przyjmuje wartości, ustaw jej wartość słownikową na pusty ciąg znaków.
Zwroty
  • Słownik zawierający dane wyjściowe komponentu. Treść słownika jest definiowana przez sam komponent.

    Jeśli jako nazwy klasy w argumencie WebViewName używasz InstrumentationTestRunner, słownik wyników zawiera pojedynczy klucz „stream”. Wartość „stream” to ciąg znaków zawierający testowe dane wyjściowe, tak jakby InstrumentationTestRunner był uruchamiany z wiersza poleceń. Format tych danych wyjściowych jest opisany w sekcji Testowanie w innych IDE.

void naciskanie (nazwa ciągu znaków, typ integer)

Wysyła kluczowe zdarzenie określone przez type do klucza podanego przez keycode.

Argumenty
nazwa Nazwa kodu klucza do wysłania. Listę nazw kodów kluczy znajdziesz na stronie KeyEvent. Użyj nazwy kodu klucza, a nie jego liczby całkowitej.
typ Typ kluczowego zdarzenia do wysłania. Dozwolone wartości to DOWN, UP i DOWN_AND_UP.

void reboot (string bootloadType)

Uruchamia urządzenie w programie rozruchowym określonym przez bootloadType.

Argumenty
do Typ programu rozruchowego, który ma zostać zrestartowany. Dozwolone wartości to „bootloader”, „recovery” lub „None”.

void removePackage (pakiet string)

Usuwa określony pakiet z tego urządzenia, w tym dane i pamięć podręczną.

Argumenty
paczka Nazwa pakietu na Androida pliku .apk na tym urządzeniu.

object shell (ciąg cmd)

Wykonuje polecenie powłoki adb i zwraca wynik (jeśli istnieje).

Argumenty
Cmd Polecenie do wykonania w powłoce adb. Formę tych poleceń opisano w temacie Android Debug Bridge.
Zwroty
  • Wyniki polecenia (jeśli występują). Format wyników jest określany w poleceniu.

void startActivity ( string uri, string action, string data, string typ MIME, iterable kategorie słownik dodatki, komponent komponent, flagi iterable)

Uruchamia działanie na tym urządzeniu przez wysłanie intencji utworzonej na podstawie podanych argumentów.

Argumenty
identyfikator URI Identyfikator URI intencji. (patrz Intent.setData()).
działanie Działanie związane z intencji (patrz Intent.setAction()).
dane Identyfikator URI danych intencji (patrz Intent.setData()).
typ MIME Typ MIME intencji (patrz Intent.setType()).
kategorie Iterowa struktura danych zawierająca ciągi znaków, które definiują kategorie intencji (patrz Intent.addCategory()).
dodatki Słownik z dodatkowymi danymi na potrzeby intencji (przykład znajdziesz tutaj: Intent.putExtra()).

Kluczem dla każdego elementu słownika powinien być ciąg znaków. Wartością elementu może być dowolny typ danych uporządkowanych lub prosty.

składnik Komponent intencji (patrz ComponentName). Użycie tego argumentu przekieruje intencję do określonej klasy w ramach określonego pakietu na Androida.
flagi Iterowa struktura danych zawierająca flagi, które kontrolują sposób obsługi intencji (patrz Intent.setFlags()).

MonkeyImage takeSnapshot ()

Przechwytuje cały bufor ekranu urządzenia, wykonując zrzut ekranu bieżącego wyświetlacza.

Zwroty
  • Obiekt MonkeyImage zawierający obraz bieżącego wyświetlacza.

void touch ( integer x, liczba całkowita y, typ ciąg znaków)

Wysyła zdarzenie dotknięcia określone przez typ do lokalizacji na ekranie określonej przez x i y.

Argumenty
x Pozioma pozycja dotknięcia w rzeczywistych pikselach urządzenia, począwszy od lewej strony ekranu w bieżącej orientacji.
Y Pionowa pozycja dotyku w rzeczywistych pikselach urządzenia, od góry ekranu w bieżącej orientacji.
typ Typ kluczowego zdarzenia do wysłania. Dozwolone wartości to DOWN, UP i DOWN_AND_UP.

void type (wiadomość string)

Wysyła znaki zawarte w wiadomości na tym urządzeniu tak, jakby zostały wpisane na klawiaturze urządzenia. Odpowiada to wywołaniu press() dla każdego kodu klucza w obiekcie message za pomocą typu kluczowego zdarzenia DOWN_AND_UP.

Argumenty
wiadomość Ciąg tekstowy zawierający znaki do wysłania.

void wybudzenie ()

Wybudza ekran tego urządzenia.


Dodatek

Tabela 1. Nazwy zmiennych właściwości używane w metodach getProperty() i getSystemProperty().

Grupa usług Właściwość Opis Uwagi
build board Nazwa kodu płyty systemowej urządzenia Zobacz: Build
brand Operator lub dostawca, dla którego został dostosowany system operacyjny.
device Nazwa projektu urządzenia.
fingerprint Unikalny identyfikator obecnie uruchomionej kompilacji.
host
ID Numer listy zmian lub etykieta.
model Nazwa urządzenia widoczna dla użytkownika.
product Ogólna nazwa produktu.
tags Oddzielone przecinkami tagi opisujące kompilację, np. „unsign” (bez podpisu) i „debug” (debugowanie).
type Typ kompilacji, np. „user” lub „eng”.
user
CPU_ABI Nazwa zestawu instrukcji dla kodu natywnego w postaci typu procesora formularza i konwencji interfejsu ABI.
manufacturer Producent produktu lub sprzętu.
version.incremental Kod wewnętrzny używany przez system kontroli źródła do reprezentowania tej wersji oprogramowania.
version.release Widoczna dla użytkownika nazwa danej wersji oprogramowania.
version.sdk Widoczna dla użytkownika wersja pakietu SDK powiązana z tą wersją systemu operacyjnego.
version.codename Obecny kryptonim programisty lub „REL”, jeśli ta wersja oprogramowania została opublikowana.
display width Szerokość wyświetlacza urządzenia w pikselach. Aby dowiedzieć się więcej, wejdź na DisplayMetrics.
height Wysokość wyświetlacza urządzenia w pikselach.
density Logiczna gęstość wyświetlacza. Jest to współczynnik, który skaluje jednostki DIP (pikseli niezależne od gęstości) do rozdzielczości urządzenia. Wartość DIP jest dostosowywana tak, aby 1 DIP odpowiadała 1 pikselowi na wyświetlaczu o przekątnej 160 pikseli na cal. Na przykład na ekranie o rozdzielczości 160 dpi gęstość = 1,0, a na ekranie 120 dpi = 0,75.

Wartość nie jest dokładnie zgodna z rzeczywistym rozmiarem ekranu, ale jest dostosowywana w celu dostosowania go do dużych zmian DPI wyświetlacza. Więcej informacji znajdziesz tutaj: density.

am.current package Nazwa aktualnie uruchomionego pakietu na Androida. Klucze am.current zwracają informacje o obecnie uruchomionej aktywności.
action Działanie w ramach bieżącej aktywności. Ma taki sam format jak atrybut name elementu action w pliku manifestu pakietu.
comp.class Nazwa klasy komponentu, który rozpoczął bieżące działanie. Więcej informacji znajdziesz tutaj: comp.package.
comp.package Nazwa pakietu komponentu, który rozpoczął bieżące działanie. Komponent określa nazwa pakietu i nazwa klasy, która zawiera ten pakiet.
data Dane (jeśli istnieją) zawarte w intencji, która rozpoczęła bieżące działanie.
categories Kategorie określone przez intencję, która rozpoczęła bieżące działanie.
clock realtime Liczba milisekund od ponownego uruchomienia urządzenia, w tym czas głębokiego uśpienia. Aby dowiedzieć się więcej, przeczytaj SystemClock.
uptime Liczba milisekund od ponownego uruchomienia urządzenia, bez uwzględnienia czasu głębokiego uśpienia
millis czas w milisekundach od początku epoki UNIX.