Отключить события системного уровня на Android-обезьяне

Пока обезьяна тестирует мое приложение

% adb shell monkey -p com.foo.bar --throttle 1000 -v 14400

Я заметил, что он получает доступ к различным системным настройкам на моем устройстве, таким как управление звуком и создание снимков экрана. Согласно http://developer.android.com/tools/help/monkey.html, это как он должен был себя вести.

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

Можно ли исключить события системного уровня, чтобы обезьяна полностью сосредоточилась на моем целевом приложении?

Я просмотрел параметр «-c» для ограничений, но просматривая доступные намерения на http://developer.android.com/reference/android/content/Intent.html, я не вижу ничего, связанного с отключением таких событий системного уровня.

Любые указатели?


person Edmund    schedule 03.01.2014    source источник
comment
Обновление: я также пытался настроить прогон так, чтобы вероятность запуска определенных событий равнялась 0%, что, похоже, не помогло. % adb shell monkey -p com.yahoo.mobile.client.android.fantasyfootball --pct-syskeys 0 --pct-anyevent 0 --throttle 1000 -v 14400   -  person Edmund    schedule 04.01.2014


Ответы (2)


Установив -pct-sysevents на ноль.

Однако при использовании команды обезьяны есть небольшая загвоздка, связанная с порядком событий.

-v — это флаг многословия.

COUNT должен стоять в самом конце команды

adb shell monkey -p your.package.name -v --pct-syskeys 0 9999
adb shell monkey -p your.package.name -v --pct-syskeys 0 COUNT

Использование команды приведено ниже.

usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              COUNT

Все параметры объясняются: https://developer.android.com/studio/test/monkey.html

person kopos    schedule 30.04.2015

Мне удалось изменить соотношение «системных» событий, установив --pct-syskeys гораздо более высокое значение.

В моем случае обезьяна продолжала показывать область уведомлений и изменять настройки Wi-Fi (мое приложение работает только с Wi-Fi), и этот параметр решил проблему.

person Eloi Navarro    schedule 25.03.2014
comment
Но если вы установите --pct-syskeys на гораздо более высокое значение, больше шансов генерировать такие события. Я думаю, что ответ @kopos правильный, чтобы установить его на 0. - person Parmaia; 16.06.2016