有谁知道getevent的输出意味着什么?

时间:2012-09-05 11:42:35

标签: android touch adb event-log

我正在尝试从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值),但最后一个字段似乎包含巨大或非常小的数字。

此外,时间戳对我来说也很陌生。我想知道冲刺后的部分是否是纳秒?

有谁知道我在哪里可以找到这些东西的格式?

3 个答案:

答案 0 :(得分:12)

/dev/input/eventXevdev linux内核子系统使用,它是通用输入事件层处理事件并将其时间戳传递给应用程序。您可以尝试使用getevent工具在Android上发布更多人类可读输出,如下所示:

$ adb shell getevent -lp /dev/input/event1

要获取所有getevent选项,请执行以下操作:

$ adb shell getevent --help

您可以详细了解getevent工具hereevdev on Wiki

根据内核消息来源,evdev使用纳秒分辨率时间格式(ktime),如果您想在线查看,则源位于linux/next/include/linux/ktime.hhere

答案 1 :(得分:0)

看起来你的片段中没有触摸屏触摸,或者可能没有记录x和y。

通常,触摸屏的X坐标位于0003 0035下,Y位于0003 0036下,而0003 0039通常位于指针下方(最后一位)字段看起来更像00000000)和手指向上(最后一个字段看起来更像ffffffff)。

不完全确定0003 003a是什么,但它似乎不太重要,它绝对不是XY十六进制。

此外,时间戳以秒为单位。时间戳中破折号之前的部分表示1970年1月1日UTC时的Unix Epox,破折号​​之后的时间戳是基于自上述时间和日期以来的秒数的日期。

希望增加一些清晰度。

答案 2 :(得分:0)

0x35 = X轴

0x36 = Y轴

按照此链接进行getevent工具

https://source.android.com/devices/input/getevent

并查看每个详细信息的含义,请遵循此标题文件。

https://android.googlesource.com/kernel/msm.git/+/android-msm-hammerhead-3.4-kk-r1/include/linux/input.h