与android模拟器交互

时间:2015-03-12 17:09:21

标签: java c# android genymotion

我正在研究Genymotion android模拟器,我正在研究如何与它进行交互。 我读到事件和Linux为每个设备公开了一个统一的输入事件接口/ dev / input / eventX。

可以用android模拟器完成吗? 我的意思是例如可以使用java实现将鼠标事件发送到模拟器并注入到/ dev / input / eventX,这样我们可以使用java应用程序上的按钮与2048游戏进行交互,而不是触摸。上下移动??

希望这是一个明确的问题:)

谢谢:)

1 个答案:

答案 0 :(得分:3)

有很多方法可以与Android模拟器进行互动:

  1. 您可以手动复制您应用的手势"通过ADB Shell,您可以使用geteventsendevent命令访问您的设备。这可能有点费力,但您可以阅读this very clear post了解更多信息。
  2. 您还可以使用adb shell input命令,其中" man输出"是不言自明的。它允许您注入定义的输入,如触摸屏,文本输入等。
  3. 您也可以使用UI Automator。从Java项目模拟用户行为非常有用。你从手机里面跑。
  4. 然后,您还可以使用MonkeyRunner这一Python API,它允许您通过ADB从手机外部编写类似用户的行为。如果您想从设备外部编写脚本,则更好的方法。
  5. 如果您想从应用内部设置手势,可以使用Instrument课程。它允许您注入事件并需要INJECT_EVENTS权限。请注意,如果应用程序不是系统应用程序,则无法在应用程序之外注入事件。要成为系统应用,您需要使用系统证书as explained here为您的应用签名。由于Genymotion和Android SDK模拟器使用AOSP默认证书,您将能够轻松获得它。