Seltsame Funktion in ActivityManager: isUserAMonkey. Was bedeutet das, wozu dient es?

144

Ich habe die folgende Funktion im Paket gefunden android.app.ActivityManager.

public static boolean isUserAMonkey ()

Die Referenz beschreibt:

public static boolean isUserAMonkey () Seit: API Level 8

Gibt "true" zurück, wenn die Benutzeroberfläche gerade von einem Affen durcheinander gebracht wird.

Ich war schockiert von dieser seltsamen Funktion. Und habe ein paar Fragen.

  • Was bedeutet das (die Benutzeroberfläche wird derzeit von einem Affen durcheinander gebracht)?

  • Was ist der praktische Nutzen dieser Funktion?

  • Warum verwenden sie isUserAMonkeyfür den Funktionsnamen?

gtiwari333
quelle
Es gibt keine ordnungsgemäße Dokumentation. Wie können wir dann die Funktion verwenden? Sie sollten eine Überprüfung ihrer Dokumentation erhalten.
Mahendran
Laut der Antwort von HefferWolf wird diese Methode für einige automatische Tests des Android-Frameworks verwendet (glaube ich), daher müssen wir diese Funktion überhaupt nicht verwenden. Daher ist keine ordnungsgemäße Dokumentation erforderlich.
gtiwari333
10
Schock den Affen
Jeff Axelrod
Es sieht für mich wie Testcode aus, der in Produktionsbibliotheken gelangt ist, in diesem Fall in den ActivityManager. Wenn Ihr Produktionscode weiß, ob er gerade getestet wird, und vermutlich seine Aktionen in irgendeiner Weise ändert, basiert das Wissen auf dem gesamten Punkt des Testcodes, der leicht zu Hisenbugs führt. Außerdem wird der API Cruft hinzugefügt, was das Verständnis und die Wartung erschwert. Die Tatsache, dass diese SO-Frage überhaupt existiert, ist Beweis genug.
Melinda Green
Ich lachte, als ich diese Methode sah
Marcos Vasconcelos

Antworten:

33

Der Affe ist ein Programm, das auf Ihrem Emulator oder Gerät ausgeführt wird und pseudozufällige Streams von Benutzerereignissen wie Klicks, Berührungen oder Gesten sowie eine Reihe von Ereignissen auf Systemebene generiert. Mit dem Monkey können Sie die von Ihnen entwickelten Anwendungen auf zufällige, aber wiederholbare Weise einem Stresstest unterziehen.

Verweisen Sie einfach auch auf diese Links:

Harikrishnan
quelle