我正在尝试从adb shell中的getevent命令中找出输出的格式。
例如,输出如下所示:
adb shell getevent -t | grep event1
-t标志提供时间戳,grep是仅将消息过滤到触摸屏的事件。
22779-197145:/ dev / input / event1:0003 003a 00400001
22779-197999:/ dev / input / event1:0003 0039 82c30a97
22779-218477:/ dev / input / event1:0003 003a 00390001
22779-219301:/ dev / input / event1:0003 0039 82c30aa4
22779-230623:/ dev / input / event1:0003 003a 002f0001
22779-231416:/ dev / input / event1:0003 0039 82c10aae
22779-242769:/ dev / input / event1:0003 003a 00190001
22779-243623:/ dev / input / event1:0003 0039 82c60ac1
22779-253328:/ dev / input / event1:0003 003a 00000002
22779-254213:/ dev / input / event1:0003 0039 82da0ae4
22779-415590:/ dev / input / event1:0003 003a 00000000
22779-416444:/ dev / input / event1:0003 0039 800b1549
问题是我不知道如何处理这些信息。虽然秒最后一个字段在两个代码之间交替(已建议对应于X和Y值),但最后一个字段似乎包含巨大或非常小的数字。
此外,时间戳对我来说也很陌生。我想知道冲刺后的部分是否是纳秒?
有谁知道我在哪里可以找到这些东西的格式?
答案 0 :(得分:12)
/dev/input/eventX
由evdev
linux内核子系统使用,它是通用输入事件层处理事件并将其时间戳传递给应用程序。您可以尝试使用getevent
工具在Android上发布更多人类可读输出,如下所示:
$ adb shell getevent -lp /dev/input/event1
要获取所有getevent
选项,请执行以下操作:
$ adb shell getevent --help
您可以详细了解getevent
工具here和evdev
on Wiki。
根据内核消息来源,evdev使用纳秒分辨率时间格式(ktime
),如果您想在线查看,则源位于linux/next/include/linux/ktime.h
或here。
答案 1 :(得分:0)
看起来你的片段中没有触摸屏触摸,或者可能没有记录x和y。
通常,触摸屏的X
坐标位于0003 0035
下,Y
位于0003 0036
下,而0003 0039
通常位于指针下方(最后一位)字段看起来更像00000000
)和手指向上(最后一个字段看起来更像ffffffff
)。
不完全确定0003 003a
是什么,但它似乎不太重要,它绝对不是X
或Y
十六进制。
此外,时间戳以秒为单位。时间戳中破折号之前的部分表示1970年1月1日UTC时的Unix Epox,破折号之后的时间戳是基于自上述时间和日期以来的秒数的日期。
希望增加一些清晰度。
答案 2 :(得分:0)
0x35 = X轴
0x36 = Y轴
按照此链接进行getevent工具
https://source.android.com/devices/input/getevent
并查看每个详细信息的含义,请遵循此标题文件。