Android, как эмулировать жесты салфетки в AVD?
как имитировать жесты салфетки (слева и справа, например) на AVD? Возможно ли это вообще? (In руководство разработчика Android-эмулятор Я не могу их найти...
P.S.: У меня есть "поддержка сенсорного экрана", установленная на " Да " в моем Android 2.2, настройки устройства уровня API 8
4 ответов
один простой способ записи и воспроизведения.
вместо того, чтобы обрабатывать getevent
вывод команды, а затем отправка результатов в sendevent
это очень медленно. Мне удалось слепо записать жесты с реального устройства с той же версией Android, что и мой AVD, а затем передать записанные данные во входной буфер, это удалось обмануть устройство.
вы можете скопировать сенсорный ввод реального устройства by:
используя
dd
команда, в adb shell rundd if=/dev/input/event2 of=/sdcard/left
. Это буферизует все входные данные касания к .сделайте жест, который вы хотите имитировать (проведите пальцем).
теперь
(/sdcad/left)
заполняется данными, генерируемыми вашим реальным касанием. Вы можете выйти изdd
команда (ctrl + c).переместите файл с реального устройства в любое место в ваш AVD, скажем
(/sdcad/left)
.в оболочке AVD adb запустите
dd if=/sdcard/left of=/dev/input/event2
Виола! имитированное событие касания произойдет.
примечание: в моем устройстве файл с сенсорными событиями /dev/input/event2
, он может отличаться от устройства к другому, поэтому вы можете использовать проб и ошибок в первую очередь.
короче говоря, если вы записываете и играете на том же устройство:
dd if=/dev/input/event2 of=/sdcard/left
сделать прикосновение по-настоящему
dd if=/sdcard/left of=/dev/input/event2
повторите шаг 3, столько, сколько вам нужно.
вы можете записывать входное событие и воспроизводить его на эмуляторе, используя оболочку adb getevent и adb shel sendevent, немного жесткую tounderstand и требует перевода шестнадцатеричных значений вывода getevent в десятичные, но очень полезные.
tl; dr: я думаю, вы можете почувствовать, что это не работает, когда проблема в том, что это просто очень медленно приносит обработку пользовательского ввода в интернете. Если вы возитесь с ним в течение 10 минут, и он все еще не работает, тогда что - то не так-но сначала дайте ему 10 минут.
вот мой опыт, чтобы вы могли видеть, как я пришел к этому выводу:
Я никогда явно не добавлял устройство в AVD Manager-Studio, добавил его для меня.
когда я побежал мой (привет World) app, потребовалось довольно много времени, чтобы придумать - сначала ничего не происходило, поэтому я нажал на "Android" в нижней части окна студии и обнаружил, что он регистрирует то, что он делает.
были еще многочисленные задержки. Через минуту или около того эмулятор выскочил, и у него было сообщение об отсутствии резервной копии или что-то в этом роде. Еще через минуту или около того я увидел, что он сказал "зарядка", поэтому я щелкнул и перетащил, но ничего не произошло. Я пробовал еще несколько раз и, наконец, он ответил, изменив "зарядку" на "размах, чтобы разблокировать" (я думаю - что-то вроде этого). Поэтому я попробовал перетащить клик еще несколько раз, но, похоже, он не зарегистрировал перетаскивание. Наконец, я заметил, что кнопка камеры (программное обеспечение) загорается, когда я над ней, поэтому я нажал ее, затем я вошел в камеру (не уверен, было ли это перетаскиванием или щелчком маленького