getevent
工具可在设备上运行,并提供有关输入设备和内核输入事件的实时转储的信息。
此工具非常实用,可确保设备驱动程序报告各个输入设备的一系列预期功能并生成输入事件的所需信息流。
显示设备功能
搭配使用 adb
命令和 -p
选项,可查看设备报告的所有键和轴。
adb shell su -- getevent -p
以下示例列出了特定键盘所支持的 Linux 键码和其他事件。
name: "Motorola Bluetooth Wireless Keyboard" events: KEY (0001): 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f 0050 0051 0052 0053 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f 0060 0061 0062 0063 0064 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f 0071 0072 0073 0074 0075 0077 0079 007a 007b 007c 007d 007e 007f 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008c 008e 0090 0096 0098 009b 009c 009e 009f 00a1 00a3 00a4 00a5 00a6 00ab 00ac 00ad 00b0 00b1 00b2 00b3 00b4 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf 00c0 00c1 00c2 00d9 00f0 0110 0111 0112 01ba REL (0002): 0000 0001 0008 ABS (0003): 0028 : value 223, min 0, max 255, fuzz 0, flat 0, resolution 0 0029 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 002a : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 002b : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 MSC (0004): 0004 LED (0011): 0000 0001 0002 0003 0004 input props: <none>
使用 -i
选项可获取更多信息,包括 HID 映射表和调试信息。
使用 -l
选项可显示所有事件代码的文字标签。
adb shell su -- getevent -lp /dev/input/event1
示例:
name: "Melfas MMSxxx Touchscreen" events: ABS (0003): ABS_MT_SLOT : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0 ABS_MT_TOUCH_MAJOR : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0 ABS_MT_POSITION_X : value 0, min 0, max 720, fuzz 0, flat 0, resolution 0 ABS_MT_POSITION_Y : value 0, min 0, max 1280, fuzz 0, flat 0, resolution 0 ABS_MT_TRACKING_ID : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0 ABS_MT_PRESSURE : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 input props: INPUT_PROP_DIRECT
显示实时活动
以下示例显示了使用 Linux 多点触控输入协议“B”的触摸屏的双指多点触控手势。-l
选项可显示文本标签,而 -t
选项则可显示时间戳。
adb shell su -- getevent -lt /dev/input/event1
示例:
[ 78826.389007] EV_ABS ABS_MT_TRACKING_ID 0000001f [ 78826.389038] EV_ABS ABS_MT_PRESSURE 000000ab [ 78826.389038] EV_ABS ABS_MT_POSITION_X 000000ab [ 78826.389068] EV_ABS ABS_MT_POSITION_Y 0000025b [ 78826.389068] EV_ABS ABS_MT_SLOT 00000001 [ 78826.389068] EV_ABS ABS_MT_TRACKING_ID 00000020 [ 78826.389068] EV_ABS ABS_MT_PRESSURE 000000b9 [ 78826.389099] EV_ABS ABS_MT_POSITION_X 0000019e [ 78826.389099] EV_ABS ABS_MT_POSITION_Y 00000361 [ 78826.389099] EV_SYN SYN_REPORT 00000000 [ 78826.468688] EV_ABS ABS_MT_SLOT 00000000 [ 78826.468688] EV_ABS ABS_MT_TRACKING_ID ffffffff [ 78826.468719] EV_ABS ABS_MT_SLOT 00000001 [ 78826.468719] EV_ABS ABS_MT_TRACKING_ID ffffffff [ 78826.468719] EV_SYN SYN_REPORT 00000000
注意:getevent
时间戳采用 CLOCK_MONOTONIC 时基,并使用 $SECONDS.$MICROSECONDS 格式。有关详情,请参阅 getevent.c。