与 android 模拟器交互

interacting with android emulator

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

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

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

谢谢:)

有很多方法可以与 Android 模拟器交互:

  1. 您可以重现您应用 "by hand" 到您的设备的手势,通过 ADB Shell 您可以使用 geteventsendevent 命令。这可能有点费力,但您可以阅读 this very clear post 以了解更多信息。
  2. 您也可以使用 adb shell input 命令,其中 "man output" 是不言自明的。它允许您注入定义的输入,如触摸屏、文本输入等。
  3. 您也可以使用 UI Automator。从 Java 项目模拟用户行为非常有用。你运行从里面phone.
  4. 然后,您还可以使用 MonkeyRunner,一个 Python API,它允许您通过 ADB 从 phone 外部编写类似用户的行为脚本。如果您想从设备外部编写脚本,这是更好的方法。
  5. 如果您想从您的应用程序内部检测手势,您可以使用 Instrument class. It allows you to inject events and requires INJECT_EVENTS permission. Be careful, you cannot inject events outside your application if it is not a system app. To be a system app you need to sign your app with the system certificate, as explained here。由于Genymotion和Android SDK Emulator使用的是AOSP默认证书,您可以轻松获取。