Android(Linux)模拟按键、触摸屏等事件
2015-08-16 08:18
891 查看
前提:
在我们应用程序或者在写Android自动化测试时候常常会需要模拟实体按键,来给我们做测试用。这也是我要整理的目的。主要的涉及的是Linux Input Event事件。以下的例子基于Android 5.1(Linux-3.10)。一、利用getevent、sendevent模拟按键
(1)命令:getevent -t结果:
... add device 6: /dev/input/event9 bus: 0000 vendor 0000 product 0000 version 0000 name: "msm8994-snd-card Button Jack" location: "ALSA" id: "" version: 1.0.1 events: KEY (0001): 0100 0101 0102 0103 0104 0105 0106 0107 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就需要大量的命令来模拟。这时可以用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
相关文章推荐
- Centos下删除文件名乱码文件
- 2-6-RHEL6.5搭建vsftpd服务器案例分析与总结(Red Hat Enterprise Linux Server6.3)@树袋飘零
- 2-4-RHEL6.3搭建samba服务器案例分析与总结(Red Hat Enterprise Linux Server6.3)@树袋飘零
- 关于Linux系统清理/tmp/文件夹的原理
- 关于Linux系统清理/tmp/文件夹的原理
- 我是季重生
- linux mysql增加用户,删除用户,以及用户权限
- Linux里如何查找文件内容
- Linux学习笔记(23) Linux备份
- 克隆 CentOS 后系统启动问题解析
- 每天一个Linux命令-18(sed)
- RHEL7 -- Linux搭建FTP虚拟用户
- 每天一个Linux命令-17(awk)
- 每天一个Linux命令-16(nl)
- linux NFS服务
- 7款Linux下阅读PDF的阅读器。
- 7款Linux下阅读PDF的阅读器。
- Linux进程调用原理
- 保护眼睛——f.lux(linux,windows,mac 均可)
- 每天一个Linux命令-15(cut)