Android(Linux)模拟按键触摸屏等事件

时人不识凌云木,直待凌云始道高。这篇文章主要讲述Android(Linux)模拟按键触摸屏等事件相关的知识,希望能为你提供帮助。
前提:在我们应用程序或者在写android自己主动化測试时候经常会须要模拟实体按键,来给我们做測试用。这也是我要整理的目的。
基本的涉及的是Linux Input Event事件。
下面的样例基于Android 5.1(Linux-3.10)。
一、利用getevent、sendevent模拟按键(1)命令:getevent -t
结果:

... add device 6: /dev/input/event9 bus:0000 vendor0000 product0000 version0000 name:"msm8994-snd-card Button Jack" location: "ALSA" id:"" version:1.0.1 events: KEY (0001): 01000101010201030104010501060107 input props: < none> ...

得知:我们所要的耳机按键的相应的input事件是event9。
(2)命令:getevent -t /dev/input/event9 (getevent -l /dev/input/event9会有更加具体信息),使用按耳机按键预先获取耳机事件信息
结果:
按键按下: 0001 00e2 00000001 0000 0000 00000000 松下按键: 0001 00e2 00000000 0000 0000 00000000

(3)使用sendevent命令模拟触发线控按键事件
sendevent /dev/input/event9 0001 00e2 00000001 sendevent /dev/input/event9 0000 0000 00000000 **这个之间要延时500ms~1s,不然会被系统误觉得是误触发的** sendevent /dev/input/event9 0001 00e2 00000000 sendevent /dev/input/event9 0000 0000 00000000

注:仅仅要是input的事件都是能够用sendevent来模拟。但有时候就力不从心了如模拟触摸屏的滑动,假设用sendevent就须要大量的命令来模拟。
【Android(Linux)模拟按键触摸屏等事件】这时能够用input命令来取代。
二、利用input命令实现模拟按键、触摸屏操作(1)模拟按键
命令:input keyevent {键值}
已知Android手机音量+(KEYCODE_VOLUME_UP)的键值是24,那使用
input keyevent 24就可模拟按下音量+键。
很多其它的键值见附件1。

(2)模拟触摸屏操作(点按、滑动)
命令:input swipe {起始点x轴值} {起始点y轴值} {终点x轴值} {终点y轴值} {滑动时间[可忽略]}。时间单位:ms
比如:从x=100,y=500。滑到x=600,y=500。时间100ms
input swipe 100 500 600 500 100
命令:input tap {x轴值} {y轴值}
比如:点击x=100,y=500这个点。模拟点击APP图标打开应用
input tap 100 500
附件1
Android(Linux)模拟按键触摸屏等事件

文章图片

Android(Linux)模拟按键触摸屏等事件

文章图片

Android(Linux)模拟按键触摸屏等事件

文章图片

Android(Linux)模拟按键触摸屏等事件

文章图片

Android(Linux)模拟按键触摸屏等事件

文章图片

Android(Linux)模拟按键触摸屏等事件

文章图片

















    推荐阅读