Android: Как вы эмулируете щелчок клавиатуры? - PullRequest
5 голосов
/ 14 октября 2011

При отладке моего приложения с помощью Monkey (что почти так же весело, как и на самом деле) мне удалось потерпеть крах!Да, вот для чего, верно?

Глядя на журнал (и во время просмотра), я заметил, что Обезьяна иногда делает:

:Sending Flip keyboardOpen=true

, что, кажется, является частью моей проблемы.Когда это происходит, экран в эмуляторе поворачивается на 90 градусов, но это НЕ то же самое, что обычный поворот, который вы получаете, нажимая KEYPAD_7.Вот картинка:

unusual screen orientation

Мне кажется, эмулятор эмулирует открытие клавиатуры (флип), которое слегка отличается от вращения.

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

1 Ответ

2 голосов
/ 14 октября 2011

Возможно, используйте --pct-majornav, чтобы ограничить обезьяну только «основными» навигационными событиями (я предполагаю, что изменения клавиатуры являются «значительными», хотя я не уверен).

Вы также можетеизучите возможность написания конкретного теста, основанного на другой, но похожей среде monkeyrunner: http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html ... но я не вижу способа внедрить коды переворота клавиатуры.

Я нашел этот соответствующий вопрос SO: Имитация открытия / закрытия аппаратной клавиатуры в эмуляторе , но "ответ" там сбивает с толку и кажется недостаточным.

Не совсем ваш вопрос, но связанный с вашей корневой проблемой:

Вы забыли включить 'keyboardHidden' в раздел 'android: configChanges' файла манифеста?(Или вы включили его, но не обрабатываете обратные вызовы изменения конфигурации?)

Клавиатура скрытия / открытия перезапустит вашу деятельность.Вы можете объявить, что вы обрабатываете этот перезапуск, или, если вы этого не сделаете, ОС остановит и перезапустит само приложение.

См. http://developer.android.com/guide/topics/resources/runtime-changes.html

Обновление

Я считаю, что это является источником события переворота клавиатуры приложения обезьяны.Похоже, что введение события переворота клавиатуры было бы относительно простым: откройте / dev / input / input0 и запишите в него 16 магических байтов.

Кроме того, источник, кажется, имеет недокументированный --pct-flipопция для управления частотой смены клавиатуры: ссылка

...