2012-09-05 163 views
12

我想弄清楚输出是从adb外壳中的getevent命令的格式。有没有人知道getevent的输出是什么意思?

例如,输出看起来像这样:

adb shell getevent -t | grep event1

-t标志提供timestap和grep的是将消息进行过滤,仅在触摸屏的事件。

22779-197145是:/ dev /输入/事件1:0003 003A 00400001

22779-197999是:/ dev /输入/事件1:0003 0039 82c30a97

22779-218477是:/ dev /输入/事件1:0003 003A 00390001

22779-219301是:/ dev /输入/事件1:0003 0039 82c30aa4

22779-230623是:/ dev /输入/事件1:0003 003A 002f0001

22779-231416是:/ dev /输入/事件1:0003 0039 82c10aae

22779-242769是:/ dev /输入/事件1:0003 003A 00190001

22779-243623是:/ dev /输入/事件1:0003 0039 82c60ac1

22779-253328是:/ dev /输入/事件1:0003 003A 00000002

22779-254213是:/ dev /输入/事件1:0003 0039 82da0ae4

22779-415590是:/ dev /输入/ event1:0003 003a 00000000

22779-416444是:/ dev /输入/事件1:0003 0039 800b1549

的问题是,我不知道如何处理这些信息。当最后一个字段在两个代码之间交替(建议对应于X和Y值)时,最后一个字段似乎包含巨大或非常小的数字。

此外,时间戳对我来说也是陌生的。我不知道破折号后的部分是纳秒吗?

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

+2

上GetEvent可悲的是没有太多的信息.​​..你看过http://source.android.com/tech/input/getevent.html? – shkschneider

+0

是的,谢谢。我最终不得不改变Android的源代码,以我理解的格式获取我需要的信息。 – pypmannetjies

回答

11

/dev/input/eventX被使用evdev linux内核子系统,这是通用输入事件层处理事件并将时间戳传递给应用程序。你可以试试这个来得到什么是Android上会更多的人可读输出与getevent工具,就像这样:

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

要获得所有getevent的选项,这样做:

$ adb shell getevent --help 

你可以阅读更多关于getevent工具here和约evdevon Wiki

据内核源代码,使用了evdev纳秒分辨率时间格式(ktime)和源在linux/next/include/linux/ktime.hhere,如果你想在网上查看。

+0

感谢我会看看 – pypmannetjies

+3

[getevent源](http://code.metager.de/source/xref/android/4.0.4/system/core/toolbox/getevent.c#645)可能是有用的。 –

+0

[你的链接](https://source.android.com/tech/input/getevent)似乎已经死了。有没有新的文件? –

0

它看起来并不像触摸屏触摸是在您的片断作出或可能x和y没有记录。

通常,X坐标为触摸屏是0003 0035之下,Y正在0003 00360003 0039通常是手指下降(与最后一个字段看起来更像00000000)和手指(与最后一个字段也期待更多的像ffffffff)。

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

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

希望,增加了一些更加清晰。

相关问题