Android, как эмулировать жесты салфетки в AVD?

как имитировать жесты салфетки (слева и справа, например) на AVD? Возможно ли это вообще? (In руководство разработчика Android-эмулятор Я не могу их найти...

P.S.: У меня есть "поддержка сенсорного экрана", установленная на " Да " в моем Android 2.2, настройки устройства уровня API 8

4 ответов


просто нажмите и удерживайте и переместите мышь, чтобы создать нужное движение.


один простой способ записи и воспроизведения.

вместо того, чтобы обрабатывать geteventвывод команды, а затем отправка результатов в sendevent это очень медленно. Мне удалось слепо записать жесты с реального устройства с той же версией Android, что и мой AVD, а затем передать записанные данные во входной буфер, это удалось обмануть устройство.

вы можете скопировать сенсорный ввод реального устройства by:

  1. используя dd команда, в adb shell run dd if=/dev/input/event2 of=/sdcard/left. Это буферизует все входные данные касания к .

  2. сделайте жест, который вы хотите имитировать (проведите пальцем).

  3. теперь (/sdcad/left) заполняется данными, генерируемыми вашим реальным касанием. Вы можете выйти из dd команда (ctrl + c).

  4. переместите файл с реального устройства в любое место в ваш AVD, скажем (/sdcad/left).

  5. в оболочке AVD adb запустите dd if=/sdcard/left of=/dev/input/event2

Виола! имитированное событие касания произойдет.

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


короче говоря, если вы записываете и играете на том же устройство:

  1. dd if=/dev/input/event2 of=/sdcard/left

  2. сделать прикосновение по-настоящему

  3. dd if=/sdcard/left of=/dev/input/event2

  4. повторите шаг 3, столько, сколько вам нужно.


вы можете записывать входное событие и воспроизводить его на эмуляторе, используя оболочку adb getevent и adb shel sendevent, немного жесткую tounderstand и требует перевода шестнадцатеричных значений вывода getevent в десятичные, но очень полезные.


tl; dr: я думаю, вы можете почувствовать, что это не работает, когда проблема в том, что это просто очень медленно приносит обработку пользовательского ввода в интернете. Если вы возитесь с ним в течение 10 минут, и он все еще не работает, тогда что - то не так-но сначала дайте ему 10 минут.

вот мой опыт, чтобы вы могли видеть, как я пришел к этому выводу:

Я никогда явно не добавлял устройство в AVD Manager-Studio, добавил его для меня.

когда я побежал мой (привет World) app, потребовалось довольно много времени, чтобы придумать - сначала ничего не происходило, поэтому я нажал на "Android" в нижней части окна студии и обнаружил, что он регистрирует то, что он делает.

были еще многочисленные задержки. Через минуту или около того эмулятор выскочил, и у него было сообщение об отсутствии резервной копии или что-то в этом роде. Еще через минуту или около того я увидел, что он сказал "зарядка", поэтому я щелкнул и перетащил, но ничего не произошло. Я пробовал еще несколько раз и, наконец, он ответил, изменив "зарядку" на "размах, чтобы разблокировать" (я думаю - что-то вроде этого). Поэтому я попробовал перетащить клик еще несколько раз, но, похоже, он не зарегистрировал перетаскивание. Наконец, я заметил, что кнопка камеры (программное обеспечение) загорается, когда я над ней, поэтому я нажал ее, затем я вошел в камеру (не уверен, было ли это перетаскиванием или щелчком маленького