使用 Adb 输入时记录按键事件

Log the Key Event when using Adb input

我使用命令adb shell su -- getevent -lt /dev/input/event5 > Test.txt来记录触摸事件。当我触摸屏幕时它会工作,即它会写下所有操作(按键按下、按键移动和按键向上以及坐标)。

但是,当我使用命令adb shell input tap x y模拟触摸时,即使设备得到事件(例如,应用程序被打开)但是在日志文件中,没有关于日志行这个水龙头。

如何使用adb记录模拟按键事件触摸?

您在 getevent 输出中看不到 input tap 事件的原因是 sendeventgetevent 使用 Linux 内核输入事件和 input 命令将事件直接注入 Android 输入事件队列。

This (old but still useful) article 有一些很好的图表说明 Android 中的输入事件传播。

很遗憾,没有简单(即用)的方法来完成您的要求。我能想到的最接近的事情是使用 dumpsys input 命令——它在 RecentQueue: 部分显示最后 10 个输入事件(包括由 input 命令注入的事件) .