MonkeyDevice

Eine monkeyrunner-Klasse, die ein Gerät oder einen Emulator darstellt, auf den die Workstation, auf der monkeyrunner ausgeführt wird, zugreifen kann.

Mit dieser Klasse wird ein Android-Gerät oder -Emulator gesteuert. Die Methoden senden UI-Ereignisse, rufen Informationen ab, installieren und entfernen Anwendungen und führen Anwendungen aus.

Normalerweise müssen Sie keine Instanz von MonkeyDevice erstellen. Stattdessen verwenden Sie MonkeyRunner.waitForConnection(), um ein neues Objekt aus einer Verbindung zu einem Gerät oder Emulator zu erstellen. Anstatt beispielsweise Folgendes zu verwenden:

newdevice = MonkeyDevice()

würden Sie verwenden:

newdevice = MonkeyRunner.waitForConnection()

Zusammenfassung

Konstanten
String NACH UNTEN Verwenden Sie dies mit dem Argument type von press() oder touch() , um ein DOWN-Ereignis zu senden.
String NACH OBEN Verwenden Sie diese Methode mit dem Argument type von press() oder touch() , um ein UP-Ereignis zu senden.
String DOWN_AND_UP Verwenden Sie dies mit dem Argument type von press() oder touch() , um ein DOWN-Ereignis unmittelbar gefolgt von einem UP-Ereignis zu senden.
Methoden
void broadcastIntent (string-URI, string-Aktion, string-Daten, string mimetype, iterable Kategorien dictionary Extras, Component-Komponente, iterable Flags)
Sendet einen Intent an dieses Gerät, so als ob der Intent von einer Anwendung stammt.
void ziehen (Tupel-Start, Tupel-Ende, Gleitkomma-Dauer, Ganzzahl-Schritte)
Simuliert eine Ziehbewegung (Berühren, Halten und Verschieben) auf dem Bildschirm dieses Geräts.
Objekt getProperty (String-Schlüssel)
Gibt den Namen einer Systemumgebungsvariablen zurück, deren Wert für dieses Gerät zurückgegeben wird Die verfügbaren Variablennamen sind in der detaillierten Beschreibung dieser Methode aufgeführt.
Objekt getSystemProperty (String-Schlüssel)
. Die API-Entsprechung zu adb shell getprop <key>. This is provided for use by platform developers.
void installPackage (String-Pfad)
Die Android-Anwendung oder das in „packageFile“ enthaltene Testpaket wird auf diesem Gerät installiert. Wenn die Anwendung oder das Testpaket bereits installiert ist, wird es ersetzt.
Wörterbuch instrument (string className, dictionary-Argumente)
Führt die angegebene Komponente unter Android-Instrumentierung aus und gibt die Ergebnisse in einem Wörterbuch zurück, dessen genaues Format von der ausgeführten Komponente bestimmt wird. Die Komponente muss bereits auf diesem Gerät vorhanden sein.
void press (String-Name, Dictionary-Typ)
Sendet das nach Typ angegebene Schlüsselereignis an den durch Keycode angegebenen Schlüssel.
void neu starten (String in)
Startet dieses Gerät im durch BootloadType angegebenen Bootloader neu.
void removePackage (string-Paket)
Löscht das angegebene Paket, einschließlich der Daten und des Cache, von diesem Gerät.
Objekt shell (String cmd)
Führt einen adb-Shell-Befehl aus und gibt das Ergebnis zurück, falls vorhanden.
void startActivity (String-URI, String-Aktion, String-Daten, String-MIME-Typ, iterable Kategorien Wörterbuch-Extras, Komponente-Komponente, Flags)
Startet eine Aktivität auf diesem Gerät, indem ein Intent gesendet wird, der aus den bereitgestellten Argumenten erstellt wurde.
MonkeyImage takeSnapshot()
Erfasst den gesamten Bildschirmzwischenspeicher des Geräts und ergibt ein MonkeyImage -Objekt, das eine Bildschirmaufnahme des aktuellen Bildschirms enthält.
void touch (integer x, integer y, integer-Typ)
Sendet ein Touch-Ereignis, das durch den Typ angegeben ist, an die durch x und y angegebene Bildschirmposition.
void Typ (string Nachricht)
Sendet die in der Nachricht enthaltenen Zeichen an dieses Gerät, so als wären sie über die Tastatur des Geräts eingegeben worden. Dies entspricht dem Aufrufen von press() für jeden Schlüsselcode in message mit dem Schlüsselereignistyp DOWN_AND_UP.
void wach ()
Aktiviert das Display dieses Geräts.

Konstanten

string DOWN

press()- oder touch()-Wert. Gibt an, dass ein Ereignis vom Typ UNTEN an das Gerät gesendet werden soll. Dies entspricht dem Drücken einer Taste oder dem Berühren des Bildschirms.

string UP

press()- oder touch()-Wert. Gibt an, dass ein Ereignis vom Typ „UP“ an das Gerät gesendet werden soll.

String DOWN_AND_UP

press()-, touch()- oder type()-Wert. Gibt an, dass ein Ereignis vom Typ UNTEN, gefolgt von einem Ereignistyp nach oben, an das Gerät gesendet werden soll, entsprechend der Eingabe einer Taste oder dem Klicken auf den Bildschirm.

Öffentliche Methoden

void broadcastIntent ( string uri, string Aktion, string daten, string mimetype, iterable kategorien wörterbuch Extras, komponenten-Komponente, iterable-Flags)

Sendet einen Intent an dieses Gerät, so als ob der Intent von einer Anwendung stammt. Weitere Informationen zu den Argumenten finden Sie unter Intent.

Argumente
uri Der URI für den Intent. (siehe Intent.setData()).
Aktion Die Aktion für diesen Intent (siehe Intent.setAction()).
Daten Der Daten-URI für diesen Intent (siehe Intent.setData()).
MIME-Typ Der MIME-Typ für den Intent (siehe Intent.setType()).
kategorien Eine iterierbare Datenstruktur mit Strings, die Kategorien für diesen Intent definieren (siehe Intent.addCategory()).
Extras Ein Wörterbuch mit zusätzlichen Daten für diesen Intent (ein Beispiel finden Sie unter Intent.putExtra()).

Der Schlüssel für jedes Wörterbuchelement sollte ein String sein. Der Wert des Elements kann ein beliebiger einfacher oder strukturierter Datentyp sein.

Komponente Die Komponente für diesen Intent (siehe ComponentName). Mit diesem Argument wird der Intent an eine bestimmte Klasse innerhalb eines bestimmten Android-Pakets weitergeleitet.
Flags Eine iterierbare Datenstruktur mit Flags, die steuern, wie der Intent verarbeitet wird (siehe Intent.setFlags()).

void ziehen ( tuple-Anfang, tuple-Ende, float-Dauer, integer-Schritte)

Simuliert eine Ziehbewegung (Berühren, Halten und Verschieben) auf dem Bildschirm dieses Geräts.

Argumente
starten Der Startpunkt der Ziehbewegung in Form eines Tupels (x, y), wobei x und y Ganzzahlen sind.
Ende Der Endpunkt der Ziehbewegung in Form eines Tupels (x, y), wobei x und y Ganzzahlen sind.
dauer Die Dauer der Ziehbewegung in Sekunden. Der Standardwert ist 1,0 Sekunden.
Schritte Anzahl der Schritte, die beim Interpolieren von Punkten ausgeführt werden sollen. Der Standardwert ist 10.

Objekt getProperty (string-Schlüssel)

Gibt den Namen einer Systemumgebungsvariablen zurück, deren Wert für dieses Gerät zurückgegeben wird

Argumente
schlüssel Der Name der Systemumgebungsvariablen. Die verfügbaren Variablennamen sind in Tabelle 1 aufgeführt. Property-Variablennamen.
Returns
  • Wert der Variablen Das Datenformat variiert je nach angeforderter Variable.

Objekt getSystemProperty (string-Schlüssel)

Synonym für getProperty().

Argumente
schlüssel Der Name der Systemumgebungsvariablen. Die verfügbaren Variablennamen sind in Tabelle 1 aufgeführt. Namen von Property-Variablen:
Returns
  • Wert der Variablen Das Datenformat variiert je nach angeforderter Variable.

void installPackage (string-Pfad)

Android-App oder das in „packageFile“ enthaltene Testpaket wird auf diesem Gerät installiert. Wenn die Anwendung oder das Testpaket bereits installiert ist, wird es ersetzt.

Argumente
Pfad Der voll qualifizierte Pfad und Dateiname der zu installierenden Datei .apk.

dictionary instrument (string className, dictionary-Argumente)

Führt die angegebene Komponente mit Android-Instrumentierung aus und gibt die Ergebnisse in einem Wörterbuch zurück, dessen genaues Format von der ausgeführten Komponente bestimmt wird. Die Komponente muss bereits auf diesem Gerät vorhanden sein.

Verwende diese Methode, um einen Testlauf zu starten, der eine der Testlaufklassen von Android verwendet. Weitere Informationen zu Unittests mit dem Android-Test-Framework findest du unter Testgrundlagen.

Argumente
className (Klassenname) Der Name einer Android-Komponente, die bereits auf diesem Gerät installiert ist, im Standardformat „Paketname/Klassenname“, wobei der Paketname der Android-Paketname einer .apk-Datei auf diesem Gerät und der Klassenname der Klassenname einer Android-Komponente (Activity, ContentProvider, Service oder BroadcastReceiver) in dieser Datei ist. Sowohl der Paketname als auch der Klassenname müssen voll qualifiziert sein. Weitere Informationen finden Sie unter ComponentName.
Argumente Ein Wörterbuch mit Flags und ihren Werten. Diese werden beim Start an die Komponente übergeben. Wenn das Flag keinen Wert annimmt, legen Sie seinen Wörterbuchwert auf einen leeren String fest.
Returns
  • Ein Wörterbuch mit der Ausgabe der Komponente. Der Inhalt des Wörterbuchs wird von der Komponente selbst definiert.

    Wenn Sie InstrumentationTestRunner als Klassennamen im Argument componentName verwenden, enthält das Ergebniswörterbuch den einzelnen Schlüssel „stream“. Der Wert von „stream“ ist ein String mit der Testausgabe, so als würde InstrumentationTestRunner über die Befehlszeile ausgeführt. Das Format dieser Ausgabe wird unter In anderen IDEs testen beschrieben.

void press (string name, integer-Typ)

Sendet das in type angegebene Schlüsselereignis an den in keycode angegebenen Schlüssel.

Argumente
Name Der Name des zu sendenden Keycodes. Eine Liste der Keycode-Namen findest du unter KeyEvent. Verwenden Sie den Namen des Schlüsselcodes, nicht den ganzzahligen Wert.
eingeben Die Art des zu sendenden Schlüsselereignisses. Die zulässigen Werte sind DOWN, UP und DOWN_AND_UP.

void neu starten (string bootloadType)

Startet dieses Gerät im von bootloadType angegebenen Bootloader neu.

Argumente
in Der Bootloader-Typ, bei dem neu gestartet werden soll. Die zulässigen Werte sind „bootloader“, „recovery“ oder „None“.

void removePackage (string-Paket)

Löscht das angegebene Paket, einschließlich der Daten und des Cache, von diesem Gerät.

Argumente
Paket Android-Paketname einer .apk-Datei auf diesem Gerät.

Objekt Shell (string cmd)

Führt einen adb-Shell-Befehl aus und gibt das Ergebnis zurück, falls vorhanden.

Argumente
CMD Der in der adb-Shell auszuführende Befehl. Die Form dieser Befehle wird im Thema Android Debug Bridge beschrieben.
Returns
  • Die Ergebnisse des Befehls, falls vorhanden. Das Format der Ergebnisse wird durch den Befehl bestimmt.

void startActivity ( string uri, string aktion, string daten, string mimetype, iterable kategorien wörterbuch Extras, komponenten-Komponente, iterable-Flags)

Startet eine Aktivität auf diesem Gerät, indem ein Intent gesendet wird, der aus den bereitgestellten Argumenten erstellt wurde.

Argumente
uri Der URI für den Intent. (siehe Intent.setData()).
Aktion Die Aktion für den Intent (siehe Intent.setAction()).
Daten Der Daten-URI für den Intent (siehe Intent.setData()).
MIME-Typ Der MIME-Typ für den Intent (siehe Intent.setType()).
kategorien Eine iterierbare Datenstruktur mit Strings, die Kategorien für den Intent definieren (siehe Intent.addCategory()).
Extras Ein Wörterbuch mit zusätzlichen Daten für den Intent (ein Beispiel finden Sie unter Intent.putExtra()).

Der Schlüssel für jedes Wörterbuchelement sollte ein String sein. Der Wert des Elements kann ein beliebiger einfacher oder strukturierter Datentyp sein.

Komponente Die Komponente für den Intent (siehe ComponentName). Mit diesem Argument wird der Intent an eine bestimmte Klasse in einem bestimmten Android-Paket weitergeleitet.
Flags Eine iterierbare Datenstruktur mit Flags, die steuern, wie der Intent verarbeitet wird (siehe Intent.setFlags()).

MonkeyImage takeSnapshot ()

Erfasst den gesamten Bildschirmzwischenspeicher des Geräts, sodass eine Bildschirmaufnahme des aktuellen Bildschirms erstellt wird.

Returns
  • Ein MonkeyImage-Objekt, das das Bild des aktuellen Displays enthält.

void touch ( integer x, integer y, string typ)

Sendet ein Touch-Ereignis, das durch den Typ angegeben ist, an die durch x und y angegebene Bildschirmposition.

Argumente
x Die horizontale Position des Touchscreens in tatsächlichen Gerätepixeln, beginnend vom linken Rand des Bildschirms in seiner aktuellen Ausrichtung.
y Die vertikale Position des Touchscreens in tatsächlichen Gerätepixeln, beginnend vom oberen Bildschirmrand in seiner aktuellen Ausrichtung.
eingeben Die Art des zu sendenden Schlüsselereignisses. Die zulässigen Werte sind DOWN, UP und DOWN_AND_UP.

void type (string message)

Sendet die in der Nachricht enthaltenen Zeichen an dieses Gerät, so als wären sie über die Tastatur des Geräts eingegeben worden. Dies entspricht dem Aufrufen von press() für jeden Schlüsselcode in message mit dem Schlüsselereignistyp DOWN_AND_UP.

Argumente
Nachricht Ein String mit den zu sendenden Zeichen.

void wake ()

Aktiviert das Display dieses Geräts.


Anhang

Tabelle 1. Mit getProperty() und getSystemProperty() verwendete Attributvariablennamen.

Property-Gruppe Attribut Beschreibung Hinweise
build board Codename für die Systemkarte des Geräts Build ansehen
brand Der Mobilfunkanbieter oder Anbieter, für den das Betriebssystem angepasst ist.
device Der Name des Gerätedesigns.
fingerprint Eine eindeutige Kennung für den aktuell ausgeführten Build.
host
ID Eine Nummer oder ein Label für die Änderungsliste
model Der für den Endnutzer sichtbare Name des Geräts.
product Der allgemeine Produktname.
tags Durch Kommas getrennte Tags, die den Build beschreiben, z. B. „unsigniert“ und „debug“.
type Der Build-Typ, z. B. „user“ oder „eng“.
user
CPU_ABI Der Name des nativen Code-Befehlssatzes in Form von CPU-Typ plus ABI-Konvention.
manufacturer Der Produkt-/Hardwarehersteller.
version.incremental Der interne Code, der vom Versionsverwaltungssystem verwendet wird, um diese Version der Software darzustellen.
version.release Der für den Nutzer sichtbare Name dieser Softwareversion.
version.sdk Die für den Nutzer sichtbare SDK-Version, die mit dieser Version des Betriebssystems verknüpft ist.
version.codename Der aktuelle Entwicklungscodename oder „REL“, wenn diese Version der Software veröffentlicht wurde.
display width Die Displaybreite des Geräts in Pixeln. Weitere Informationen finden Sie unter DisplayMetrics.
height Die Anzeigehöhe des Geräts in Pixeln.
density Die logische Dichte der Anzeige. Dies ist ein Faktor, der die DIP-Einheiten (Density-Independent Pixel) auf die Auflösung des Geräts skaliert. Die DIP wird so angepasst, dass 1 DIP einem Pixel auf einem 160 Pixel pro Zoll großen Bildschirm entspricht. Auf einem Bildschirm mit 160 dpi lautet die Dichte beispielsweise 1,0, auf einem Bildschirm mit 120 dpi beträgt die Dichte 0,75.

Der Wert entspricht nicht exakt der tatsächlichen Bildschirmgröße, wird jedoch an größere Änderungen des Anzeige-DPI angepasst. Weitere Informationen finden Sie unter density.

am.current package Der Android-Paketname des derzeit ausgeführten Pakets. Die am.current-Schlüssel geben Informationen zur aktuell ausgeführten Aktivität zurück.
action Die Aktion der aktuellen Aktivität. Es hat dasselbe Format wie das Attribut name des action-Elements in einem Paketmanifest.
comp.class Der Klassenname der Komponente, die die aktuelle Activity gestartet hat. Weitere Informationen finden Sie unter comp.package.
comp.package Der Paketname der Komponente, die die aktuelle Aktivität gestartet hat. Eine Komponente wird durch einen Paketnamen und den Namen der Klasse, die das Paket enthält, angegeben.
data Die Daten (falls vorhanden), die in dem Intent enthalten sind, der die aktuelle Aktivität gestartet hat.
categories Die Kategorien, die von dem Intent angegeben wurden, der die aktuelle Aktivität gestartet hat.
clock realtime Die Anzahl der Millisekunden seit dem Neustart des Geräts, einschließlich der Tiefschlafzeit. Weitere Informationen findest du unter SystemClock.
uptime Die Anzahl der Millisekunden seit dem Neustart des Geräts, ohne die Tiefschlafzeit
millis Aktuelle Zeit seit der UNIX-Epoche in Millisekunden.