有没有办法在 Android 上记录并精确重放 UI 事件?

Is there a way to record and precisely replay UI events on Android?

我假设重播发生在相同的设备型号、屏幕方向和应用设置上 UI。因此,事件的确切坐标预计在录制和重放期间是相同的。设备可以root。

根据 the paper about RERAN tool 可以使用 geteventsendevent 工具记录和回放非常低级别的 UI 事件,这两种工具都在 Android 中可用开发工具包。

RERAN tool 可以完成这项工作,但它需要 root 并且不清楚它是否可以在比 2.3.4 更新的 Android 上工作。 RERAN 不使用 sendevent 是因为它的延迟很小,无法忠实地重放事件流。因为该工具使用它的自定义解决方案而不是 sendevent,所以它需要 phone 被植根。

RERAN 工具已过时,它需要 root 才能从设备记录并回放到具有特定 Android 版本的特定设备。

查看开胃菜工具包。它适用于具有 ADB 调试功能的非根设备。并且它可以重播到与录制设备具有相同纵横比的设备。 https://github.com/appetizerio/appetizer-toolkit

我遇到了更多的工具, 但不是真正可以解释的文档 所有内部结构。

我猜人们在处理 Android 内部结构 Android OS 应该有更多想法 怎么办。

这个 (replaykit) 工作得很好,虽然他们没有公开主要的源代码,只是二进制文件和文档 https://github.com/appetizerio/replaykit (并支持控制多台设备)

另一个答案中提到的RERUN (http://www.androidreran.com/)和下一个 (面向 bash):
https://github.com/Cartucho/android-touch-record-replay

中继将编译后的二进制文件推送到您的 phone, 允许将记录的事件发送到 OS 的命令 事件流。

Replay kit 可能在内部完成,或者他们有 另一种方法。

如果有人能提供更多信息或工具,那就太好了。