android自动化测试 getevent/sendevent

通过adb shell sendevent 命令可以发送鼠标(触屏)、键盘等设备的事件,写成bat脚本或sh脚本后可以方便地进行自动化测试。

命令格式:adb shell getevent[device]

adb shell sendevent [device] [type] [code] [value]

其中device为设备类型,不同的UE包括的device不一样,可以通过下面的命令查看:

adb shell cat /proc/bus/input/devices

I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="88pm822_hook_vol"
P: Phys=88pm822_hook_vol/input0
S: Sysfs=/devices/platform/pxa910-i2c.2/i2c-2/2-0030/88pm822-headset/input/input5
U: Uniq=
H: Handlers=kbd event5 keyreset touch_boost 
B: PROP=0
B: EV=3
B: KEY=4 0 0 0 c0000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="vnc-ts"
P: Phys=vnc-ts/input0
S: Sysfs=/devices/platform/vnc-ts/input/input6
U: Uniq=
H: Handlers=mouse1 event6 touch_boost touch_boost 
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=11000003

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="mxt224_ts_input"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=event0
B: EV=9
B: ABS=2650000 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="gyro"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1
B: EV=5
B: REL=38

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="herring-keypad"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=event2 keychord
B: EV=3
B: KEY=1c0000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="proximity"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3
B: EV=9
B: ABS=2000000

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="lightsensor-level"
P: Phys=
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=event4
B: EV=9
B: ABS=100 0

I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="compass"
P: Phys=
S: Sysfs=/devices/virtual/input/input5
U: Uniq=
H: Handlers=event5
B: EV=5
B: REL=3ff
获取上面的信息,表示从event0~event5六个device(Handles

  设备名称		说明			HANDLER
mxt224_ts_input		屏幕触摸输入(鼠标)	event0
   Gyro			陀螺仪			event1
herring-keypad		键盘			event2
  proximity		近距离感应器(脸颊感应)event3
lightsensor-level	光感应器		event4
   compass		定位仪			event5
注意:每台设备上的输入设备分布和名称都可能不一样

一般主要会用到鼠标键盘,这里为event0和event2。

现在我们以鼠标事件举例:
我们先用getevent查看event0的事件信息:
adb shell getevent /dev/input/event0
然后在屏幕上点击或者滑动一下,可以得到如下打印:

0003 0035 0000008b
0003 0036 000002c0
0003 0030 00000044
0003 0032 00000004
0003 0039 00000000
0000 0002 00000000
0000 0000 00000000
0003 0035 0000008b
0003 0036 000002c0
这三组数字分别表示[type] [code] [value],与上面出现在adb shell sendevent [device] [type] [code] [value]
那么这些值表示什么意思呢,我们可以查看event0的内容,输入如下命令:

adb shell getevent -p /dev/input/event0

看到如下信息:

add device 1: /dev/input/event0
name: "mxt224_ts_input"
events:
SYN (0000): 0000 0003
ABS (0003): 0030 value 0, min 0, max 255, fuzz 0 flat 0
	    0032 value 0, min 0, max 30, fuzz 0 flat 0
	    0035 value 0, min 0, max 1023, fuzz 0 flat 0
	    0036 value 0, min 0, max 950, fuzz 0 flat 0
   	    0039 value 0, min 0, max 4, fuzz 0 flat 0



 
 








      
      





      
      





      
      





      
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值