Dziwna funkcja w ActivityManager: isUserAMonkey. Co to oznacza, jakie jest jego zastosowanie?


144

W pakiecie znalazłem następującą funkcję android.app.ActivityManager.

public static boolean isUserAMonkey ()

Odniesienie opisuje:

public static boolean isUserAMonkey () Od: API Level 8

Zwraca wartość „true”, jeśli interfejs użytkownika jest obecnie modyfikowany przez małpę.

Byłem zszokowany tą dziwną funkcją. I mam kilka pytań.

  • Co to oznacza (interfejs użytkownika jest obecnie modyfikowany przez małpę)?

  • Jakie jest praktyczne zastosowanie tej funkcji?

  • Dlaczego używają isUserAMonkeynazwy funkcji?


Brak odpowiedniej dokumentacji. Więc jak możemy użyć tej funkcji. Powinni uzyskać przegląd swojej dokumentacji.
— Mahendran

Według odpowiedzi HefferWolfa ta metoda jest używana do automatycznego testowania frameworka Androida (tak mi się wydaje), więc w ogóle nie musimy korzystać z tej funkcji ... więc nie ma potrzeby posiadania PRAWIDŁOWEJ dokumentacji.
— gtiwari333

10
Wstrząśnij małpą
— Jeff Axelrod

Wydaje mi się, że to kod testowy, który wyciekł do bibliotek produkcyjnych, w tym przypadku ActivityManager. Posiadanie wiedzy na temat kodu produkcyjnego o tym, czy jest obecnie testowany, i przypuszczalnie zmienianie jego działań w jakikolwiek sposób w oparciu o tę wiedzę, która działa przeciwko całemu punktowi kodu testowego, który łatwo prowadzi do Hisenbugs. Dodaje również okrucieństwo do API, utrudniając zrozumienie i utrzymanie. Fakt, że to pytanie SO istnieje, jest wystarczającym dowodem.
— Melinda Green

Śmiałem się, kiedy zobaczyłem tę metodę
— Marcos Vasconcelos

Odpowiedzi:



33

The Monkey to program, który działa na emulatorze lub urządzeniu i generuje pseudolosowe strumienie zdarzeń użytkownika, takich jak kliknięcia, dotknięcia lub gesty, a także szereg zdarzeń na poziomie systemu. Możesz użyć Monkey do testowania aplikacji, które tworzysz, w losowy, ale powtarzalny sposób.

po prostu odsyłaj te linki również:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.