- 链接Android设备到电脑。
- 执行adb命令:
adb shell getevent
- 此时触控手机屏幕,会看到命令窗口中打印出一堆设备日志。
- 打印出的/dev/input/event即为该手机的触屏事件。
- 接下来根据上一步获得的event,修改该命令为该设备的命令:
adb shell getevent | grep dev/input/event > events
- 执行上述命令,并在手机上完成你需要的手势操作,完成操作之后关闭命令。
- 此时我们可以获得一份名为events的操作日志。
- 我们需要使用上面的日志使用
sendevent
命令来发送操作事件。但是上面的日志获取到的值为16进制,sendevent
所需的参数为10进制,接下来进行转换。
- 下载该python脚本 getevent_to_sendevent.py
import os
import sys
filename = sys.argv[-1]
if filename != os.path.abspath(__file__):
prefix = 'sendevent'
with open(filename, 'r') as f:
with open(filename+'.sh', 'w') as fw:
fw.write('#!/bin/sh\n')
for line in f.readlines():
event = line.split(' ')
device = event[0][:-1]
_type = '%04d' % int(event[1], 16)
code = '%04d' % int(event[2], 16)
value = '%08d' % int(event[3], 16)
content = f'{prefix} {device} {_type} {code} {value}\n'
fw.write(content)
- 运行
python getevent_to_sendevent.py events
即可生成一个sh文件events.sh
- 执行
adb push events.sh /sdcard/events.sh
- 执行
adb shell sh /sdcard/events.sh