android 使用shell command实现对设备控制,实现按坐标点击
来源:互联网 发布:星光璀璨海选网络直播 编辑:程序博客网 时间:2024/06/05 04:01
目的:实现自动化测试,
方法:使用adb shell命令。
难点,factory无法使用sendkey event 执行, 需要使用sendevent按照坐标点击.
虽然是dev下的文件是设备,但是实时的数据是在/proc/这个目录下对应的文件里。
解决难点过程,使用cat /proc/bus/input/devices > log.txt 活得设备输入信息。
从设备的信息中可以看出触摸屏lm75对应的设备input0(name为lm75的设备,Handlers对应的是event0)
然后查看/dev/input/event0的记录信息。
然后把输入信息解析成10进制 ,然后发送给设备, 如下。
self.extDevice.shellCommand("sendevent /dev/input/event0 3 48 88")
self.extDevice.shellCommand("sendevent /dev/input/event0 3 50 10")
self.extDevice.shellCommand("sendevent /dev/input/event0 3 53 908")
self.extDevice.shellCommand("sendevent /dev/input/event0 3 54 884")
self.extDevice.shellCommand("sendevent /dev/input/event0 0 2 0")
self.extDevice.shellCommand("sendevent /dev/input/event0 0 0 0")
self.extDevice.shellCommand("sendevent /dev/input/event0 0 2 0")
self.extDevice.shellCommand("sendevent /dev/input/event0 0 0 0")
大功搞成。(well done.)
参考过文档如下:
android手机上sendevent的命令在一些手机上失效, 比如htc wildfire貌似使用sendevent的ball事件就没有响应, 在nexus one上ball event ok,但touch event fail... pity, 有没有解决的办法?
我也遇到这个问题,好像back键都不起作用:
adb shell sendevent dev/input/event0 1 158 1
adb shell sendevent dev/input/event0 1 158 0
adb shell sendevent /dev/input/event2 1 330 1
adb shell sendevent /dev/input/event2 3 48 18
adb shell sendevent /dev/input/event2 3 50 1
adb shell sendevent /dev/input/event2 3 53 210 //x 坐标
adb shell sendevent /dev/input/event2 3 54 200 //y 坐标
adb shell sendevent /dev/input/event2 0 2 0
adb shell sendevent /dev/input/event2 0 0 0
adb shell sendevent /dev/input/event2 1 330 0
adb shell sendevent /dev/input/event2 0 2 0
adb shell sendevent /dev/input/event2 0 0 0
题的缘由是有个自动化测试的需求,我需要写脚本模拟点击触摸屏的一系列操作,以代替手工测试(话说~遇上连续启动1000次camera并且拍照后 退出这种变态测试,你们都是怎么做的?)。以此来证明:头儿,此bug真的解了!
Linux上可以通过sendEvent来模拟键盘或者鼠标点击事件,而Android是 基于Linux2.6的,所以也可以模拟点击事件。网络文章很多都给出这样一段数据信息,告诉你怎么去实现模拟点击:
需要注意输入设备, 和输入据类型。我的是device0 十进制
- android 使用shell command实现对设备控制,实现按坐标点击
- 一个嵌入式web服务器项目,实现通过手机Android App实现对嵌入式设备的控制
- Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试
- 使用MATLAB中axis实现图形坐标控制
- Android开发——使用ADB Shell命令实现模拟点击(支付宝自动转账实现)
- Android中对TextView实现控制空格数量实现
- Python实现利用socket连接adb控制android设备
- 基于DLNA实现iOS,Android投屏:SOAP控制设备
- Android 局域网通信并实现控制设备的灯光
- Unity3d通过射线来实现点击地面,获取点击坐标
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- Android adb shell 获得点击屏幕的位置坐标
- Android使用MediaPlayer开发播放器时,AudioManager实现对媒体焦点的控制
- Android View分区域点击实现方案——1.根据坐标范围
- Android应用层对设备的访问权限的实现
- Android应用层对设备的访问权限的实现
- 使用shell脚本实现android自动化测试
- DCWriter编辑器配置(BS模式)
- 黑马程序员—反射的机制及应用1
- 分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
- Linux 下配置vim
- birt报表
- android 使用shell command实现对设备控制,实现按坐标点击
- Linux下crontab命令的用法
- Android TextView自动换行文字排版参差不齐的原因
- Java算法之余弦相似性算法
- linux 出现: Starting MySQL.Manager of pid-file quit without updating file.[FAILED] 已解决
- Javacopy文件注意点
- Flex 字体加粗问题(做项目中碰到了)
- srm 605 div2
- java-jsoup自适应爬取网页表格的内容