Кто-нибудь знает, что означает выход из getevent?

Я пытаюсь выяснить, какой формат выводится из команды getevent в оболочке adb.

Например, вывод выглядит следующим образом:

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), последнее поле, похоже, содержит огромные или очень маленькие числа.

Кроме того, временная метка также чужда мне. Интересно, является ли часть после тире наносекундами?

Кто-нибудь знает, где я могу узнать о формате этих вещей?

Solutions Collecting From Web of "Кто-нибудь знает, что означает выход из getevent?"

/dev/input/eventX используется подсистемой ядра evdev linux, которая представляет собой общий /dev/input/eventX обработки событий событий ввода и передает его по времени в приложения. Вы можете попробовать это, чтобы получить более понятный для пользователя вывод о том, что происходит с Android с getevent инструмента getevent , например:

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

Чтобы получить все getevent , выполните следующие действия:

 $ adb shell getevent --help 

Вы можете узнать больше об инструменте getevent здесь и о evdev на Wiki .

Согласно источникам ядра, evdev использует формат времени наносекундного разрешения ( ktime ), а источники находятся в linux/next/include/linux/ktime.h или здесь , если вы хотите просмотреть его в Интернете.

Не похоже, что в вашем фрагменте были сделаны сенсорные штрихи или, возможно, x и y не были записаны.

Обычно координаты X для сенсорного экрана находятся под 0003 0035 а Y – до 0003 0036 а 0003 0039 обычно для пальца вниз (с последним полем, более похожим на 00000000 ) и для пальца вверх (с последним полем также больше похоже на ffffffff ).

Не совсем уверен, что такое 0003 003a но он кажется малозначимым, и это определенно не X или Y шестнадцатеричный.

Кроме того, метка времени измеряется в секундах. Раздел перед тире в метке времени представляет собой Unix Epox 1 января 1970 года в формате UTC, а отметка времени после тире становится датой, основанной на секундах с вышеупомянутого времени и даты.

Надеюсь, что добавит еще больше ясности.