2015-03-12 5 views
0

Я работаю над эмулятором андроидов Genymotion, и я смотрел, как с ним взаимодействовать. Я читал, что события и Linux предоставляют единый интерфейс ввода событий для каждого устройства как/dev/input/eventX., взаимодействующий с эмулятором Android

это можно сделать с помощью эмулятора android ?? Я имею в виду, можно ли, например, использовать реализацию Java для отправки событий мыши в эмулятор и вставлять в/dev/input/eventX, чтобы, например, вместо того, чтобы касаться, мы можем использовать кнопку в java-приложении для взаимодействия с игрой 2048 и двигаться вверх и вниз ???

надеюсь, что это ясный вопрос :)

спасибо :)

ответ

3

Есть много способов, чтобы взаимодействовать с Android эмулятора:

  1. Вы можете воспроизвести жесты вы применили «вручную »на ваше устройство через ADB Shell вы можете использовать команды getevent и sendevent. Это может быть немного трудоемким, но вы можете прочитать this very clear post, чтобы узнать больше.
  2. Вы также можете использовать команду adb shell input, где «man output» вполне понятен. Он позволяет вводить определенные входные данные, такие как сенсорный экран, ввод текста и т. Д.
  3. Вы также можете использовать UI Automator. Весьма полезно моделировать поведение пользователя из проекта Java. Вы бежите из телефона.
  4. Затем вы также можете использовать MonkeyRunner, API Python, который позволяет вам создавать сценарии поведения, подобного пользователю, извне телефона через ADB. Лучший способ, если вы хотите использовать скрипт извне своего устройства.
  5. Если вы хотите жесты инструмента из своего приложения, вы можете использовать класс Instrument. Это позволяет вам вводить события и требует разрешения INJECT_EVENTS. Будьте осторожны, вы не можете вводить события вне приложения, если это не системное приложение. Чтобы быть системным приложением, вам нужно подписать приложение с системным сертификатом, as explained here. Поскольку Genymotion и Android SDK Emulator используют сертификат AOSP по умолчанию, вы сможете легко получить его.
+0

Hi eyal-lezmy Спасибо за ваш ответ, я использовал monkeyRunner, и он сделал эту работу для меня. У меня есть еще один вопрос: если я создаю скрипты python, и мне нужно сделать Java-приложение C#, которое может запускать скрипт, и скрипт будет взаимодействовать с эмулятором. например, если у меня есть приложение, в котором одна кнопка говорит «перетащить» и внутри обработчика события есть код, который может запускать скрипт. вы думаете, что это возможно? как я знаю, я могу сделать код на Python в VS и Eclipse, но они могут быть для monkeyRunner ?? спасибо за помощь ... – Omarkk

+0

В принципе, вы не можете сделать это в python, потому что время выполнения python не поддерживается ОС Android. Вам потребуется сценарий на языке разработки (Java & co). Другой piont, независимо от того, какое решение вы выбрали, состоит в том, что вам понадобятся права пользователя 'system' или' root', если вы хотите выполнить его в другом приложении, чем ваше собственное. Это означает, не думайте, что вы можете сделать это на потребительских устройствах, потому что это будет сбой безопасности. 2 решения: 1. Запустите 'get/sendevent' или' input' из вашего приложения, запрашивающего 'su' как раз перед этим. 2. Посмотрите на 5-ю пулю, которую я добавил в ответ. –

Смежные вопросы