Странная функция в ActivityManager: isUserAMonkey. Что это значит, в чем его польза?


145

Я нашел в пакете следующую функцию android.app.ActivityManager.

public static boolean isUserAMonkey ()

Ссылка описывает:

public static boolean isUserAMonkey () Начиная с: API уровня 8

Возвращает "истину", если в пользовательский интерфейс в настоящее время вмешивается обезьяна.

Меня потрясла эта странная функция. И есть несколько вопросов.

  • Что это означает (пользовательский интерфейс в настоящее время испорчен обезьяной)?

  • Какая практическая польза от этой функции?

  • Почему они используют isUserAMonkeyимя функции?


Нет надлежащей документации. Тогда как мы можем использовать функцию. Они должны проверить свою документацию.
— Махендран

согласно ответу HefferWolf, этот метод используется для некоторого автоматического тестирования фреймворка Android (я думаю), поэтому нам вообще не нужно использовать эту функцию ... поэтому нет необходимости в ПРАВИЛЬНОЙ документации.
— gtiwari333

10
Shock the monkey
— Джефф Аксельрод

Мне это кажется тестовым кодом, который просочился в производственные библиотеки, в данном случае ActivityManager. Если ваш производственный код осведомлен о том, тестируется ли он в настоящее время, и, предположительно, изменяет его действия каким-либо образом на основе этих знаний, работает против всей точки тестового кода, что легко приводит к Hisenbugs. Это также добавляет беспорядка к API, что затрудняет понимание и поддержку. Тот факт, что этот вопрос ТАК вообще существует, является достаточным доказательством.
— Мелинда Грин

Я засмеялся, когда увидел этот метод
— Маркос Васконселос

Ответы:


94

18
В яблочко. Стоит увидеть эту страницу: developer.android.com/guide/developing/tools/monkey.html
— Киби

33

The Monkey - это программа, которая запускается на вашем эмуляторе или устройстве и генерирует псевдослучайные потоки пользовательских событий, таких как щелчки, прикосновения или жесты, а также ряд событий системного уровня. Вы можете использовать Monkey для стресс-тестирования приложений, которые вы разрабатываете, случайным, но повторяемым образом.

просто обратитесь также к этим ссылкам:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.