赋料扬雄敌,诗看子建亲。这篇文章主要讲述[Android]通过adb shell input上报命令模拟屏幕点击事件相关的知识,希望能为你提供帮助。
本文转载自:http://blog.csdn.net/yuanzihui/article/details/52871652
常用的 input上报命令:
input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果
input keyevent 4 键盘事件,4 为返回
input tap 100 300 单击触屏事件 ,模拟点击x=100 y = 300 位置
input swipe 100 300 500 300 触屏滑动事件,模拟滑动,从x =100
y = 300 滑动到x=500 y=300位置
input press 模拟按下轨迹球
input roll 100 300 模拟轨迹球滑动 x 方向100 y方向300
获取坐标方法:
第一步:计算比例
【[Android]通过adb shell input上报命令模拟屏幕点击事件】adb shell getevent -p | grep -e “
0035”
-e “
0036”
获得event 体系里 宽(0035)和高(0036)
以当前我使用的手机为例,命令会输出如下信息:
0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0
0035(宽) max 1602
0036(高) max 2503
计算比例(用已知的屏幕分辨率,如1080p即:1080(宽) * 1920(高)):
rateW = 1080(手机屏幕的宽) / 1602(event里0035的max) = 0.674
rateH = 1920(手机屏幕的高) / 2503(event里0036的max) = 0.767
第二步:点击屏幕计算点击位置的坐标
adb shell getevent | grep -e “
0035”
-e “
0036”
点击屏幕上需要的位置,会有如下输出:
/dev/input/event0: 0003 0035 00000341
/dev/input/event0: 0003 0036 000008ec
把0035和0036后面的位置数据从16进制转化为10进制
width = 0x341 = 3*16*16 + 4*16 + 1 = 833
height = 0x8ec = 8*16*16 + 14*16 + 12 = 2284
这是在event体系里的位置,将其转化为屏幕位置
screenW = width*rateW = 833*0.674 = 561
screenH = height*rateH = 2284*0.767 = 1751
终于算出来了
刚刚点击的屏幕位置坐标就是(561, 1751)
推荐阅读
- 如何处理WinXP系统Netware客户服务禁用了欢迎屏幕的问题?
- android后台input命令模拟按键
- android studio 导出的jar中没有主清单属性
- Android 触摸提示音
- WebApplicationContext介绍
- 短视频如何制作(如何下载短视频?常用的短视频录制和剪辑App有哪些?)
- Appium 解决中文输入问题
- 安装Xampp-配置appche,mysql运行环境遇到的坑(转)
- BeanFactory和ApplicationContext介绍