Monkey详解(脚本篇---获取坐标)
坐标是Monkey脚本的核心。Monkey提供了选取控件的API,而坐标是API Input Param的必要参数。那么如何获取控件的坐标呢?
同款机型,不同分辨率下的绝对坐标相同。但不同分辨率下,相对坐标不同。需要两个步骤。
(1)获取当前绝对坐标。
在shell 中使用getevent(大小写敏感),获取当前Event。
C:\Users\XXXX>adb shell
HWMHA:/ # getEvent
/system/bin/sh: getEvent: not found
127|HWMHA:/ # getevent
add device 1: /dev/input/event5name: "huawei,touchscreen"
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 2: /dev/input/event2name: "hisi_on"
add device 3: /dev/input/event1name: "hisi_gpio_key"
add device 4: /dev/input/event3name: "fingerprint"
add device 5: /dev/input/event4name: "hi3660_HI6403_CARD Headset Jack"
add device 6: /dev/input/event0name: "soundtrigger_input_dev"
could not get driver version for /dev/input/mice, Not a typewriter
若无屏幕触碰事件,则返回如上信息。即设备名称。
若触碰屏幕,则将看到,在设备信息之后,又有结果输出。
/dev/input/event5: 0003 003a 00000032
/dev/input/event5: 0003 0035 000001ef
/dev/input/event5: 0003 0036 000003fe
/dev/input/event5: 0003 0039 00000000
/dev/input/event5: 0000 0002 00000000
/dev/input/event5: 0001 014a 00000001
/dev/input/event5: 0000 0000 00000000
/dev/input/event5: 0000 0002 00000000
/dev/input/event5: 0001 014a 00000000
/dev/input/event5: 0000 0000 00000000
有四列信息,分别为:设备名称,Code,Type,Value.
Code是指:该事件是什么。
Type是指:事件的相关参数
Value是指:事件参数的值。
Code的值很多,我们这里只需要记住一个。
0003—>绝对坐标。
另外,买一赠三
0000—>同步事件。代表某一操作的完成。
0001—>key_broad。
0002—>相对坐标。
不同的Code有不同的Type。下面我们来看绝对坐标的Type。
当然,我们也只关注两个值。
0035—>绝对坐标X
0036—>绝对坐标Y
例子中的值X,Y分别为0x1ef,0x3fe。转换为十进制为495,1022。
目的达到,Ctrl+C,结束getEvent。
(2)根据分辨率对坐标值进行转换。
转换需要五个参数,即X轴的最大值,最小值,Y轴的最大值,最小值,当前的分辨率。
转换公式为:
相对坐标X =(X-X轴最小值)*分辨率X/(X轴最大值-X轴最小值)
相对坐标Y =(Y-Y轴最小值)*分辨率Y/(Y轴最大值-Y轴最小值)
注:其中数值都为十进制。
那么如何获取X,Y轴的最大最小值呢?
使用getevent的-p参数获取。
130|HWMHA:/ # getevent -p
add device 1: /dev/input/event5name: "huawei,touchscreen"events:KEY (0001): 003b 003c 003d 003e 003f 0041 0042 00430044 0057 0058 00bd 00be 00bf 00c0 00c10145 014aABS (0003): 0000 : value 0, min 0, max 1079, fuzz 0, flat 0, resolution 00001 : value 0, min 0, max 1919, fuzz 0, flat 0, resolution 00018 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 00030 : value 0, min 0, max 15, fuzz 0, flat 0, resolution 00032 : value 0, min 0, max 100, fuzz 0, flat 0, resolution 00033 : value 0, min 0, max 100, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 1079, fuzz 0, flat 0, resolution 00036 : value 0, min 0, max 1919, fuzz 0, flat 0, resolution 00039 : value 0, min 0, max 15, fuzz 0, flat 0, resolution 0003a : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
我们可以很容易的找到0035,0036。
那么X轴,最大值为max 1079,最小值为min 0。
Y轴,最大值为max 1919,最小值为min 0。
那么分辨率呢?
C:\Users\XXXX>adb shell wm size
Physical size: 1080x1920
剩下的就是计算了。
至此,坐标已获取完毕。之后就是Monkey API的使用问题了。
我们将在下一篇中讲解。
Monkey详解(脚本篇---获取坐标)相关推荐
- Android测试工具-Monkey详解
Monkey详解 Monkey详解 一 Monkey简介 二 Monkey测试环境配置 三 执行Monkey 四 常用monkey命令 五 Monkey测试问题分析 Monkey详解 一 Monkey ...
- Linux使用详解(进阶篇)
文章目录 Linux使用详解(进阶篇) 1.Linux目录说明 2.操作防火墙 3.ulimit命令和history命令 4.RPM和Yum的使用 5.设置系统字符集 6.vi & vim编辑 ...
- Openharmony应用NAPI详解--基础篇
NAPI是什么? 简单点理解就是在Openharmony里,实现上层js或ets应用与底层C/C++之间交互的框架. Openharmony里的官方解释:NAPI(Native API)组件是一套对外 ...
- Openharmony应用NAPI详解--进阶篇1
NAPI面向C++的异步接口 3.C++实现NAPI异步接口需要做到三步 同步返回结果给js/ets调用者 另起线程完成异步操作 通过回调(callback)或Promise将异步操作结果返回 4.异 ...
- 24.shell中list详解,定义list,获取List的总个数,获取list的某个元素值,将list的每个元素转换成以空格分隔的字符串,空格分隔的字符串转换成list,for循环list
文章目录 前言 定义list 获取List的总个数 获取list的某个元素值 将list的每个元素转换成以空格分隔的字符串 空格分隔的字符串转换成list for循环list 总结 友情链接 前言 s ...
- [转帖]前端-chromeF12 谷歌开发者工具详解 Sources篇
前端-chromeF12 谷歌开发者工具详解 Sources篇 原贴地址:https://blog.csdn.net/qq_39892932/article/details/82498748 cons ...
- mysql binlog协议_MySql-Binlog协议详解-流程篇
MySql-Binlog协议详解-流程篇 MySql-Binlog在MySql主从不同方面发挥着不可或缺的作用,同时我们也能通过Binlog实时监控数据的变化.本系列就讲述了怎样接收并解析Binlog ...
- 百家号 python高手养成_【一点资讯】Python使用PyQt5进行图形界面GUI编程之详解QWidget类的坐标体系 www.yidianzixun.com...
Python使用PyQt5进行图形界面GUI编程之详解QWidget类的坐标体系 上篇内容,我们详细介绍了使用PyCharm中LiveTemplate功能快速输入一个GUI应用框架的办法.(参见学会这 ...
- IIS负载均衡-Application Request Route详解第一篇: ARR介绍
IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Appli ...
最新文章
- java 16 -12 静态导入
- 自学python该买几本书-自学Python一年,看了几十本书,我发现了这些捷径!
- python——类和对象之私有属性
- java多线程下载_Java实现多线程下载,支持断点续传
- python现在版本强势英雄_当前版本有哪些强势英雄?
- 1603 限高二叉排列树(计数DP)
- Linux虚拟文件系统(VFS)
- 手把手带你写一个JavaScript类型判断小工具
- oracle toad 价格,Toad for oracle 软件产品模块对比,方便大家选型。
- 140809暑期培训
- Blender烘焙贴图生成静态真实场景
- 348高校毕业设计选题
- Nginx的二进制安装教程
- f2fs解析(十)nid 如何从nat_root中删除
- 计算机大二学什么,本科计算机科学与技术大二下学期学什么,女的适合什么专业好...
- 【原创】Wiki报错:“该文件的加载时间比平时要长。请稍等片刻……”
- 【Tesseract-OCR】玩转OCR中文识别
- python外星人入侵游戏图片_Python外星人入侵游戏编程完整版
- Unity中简单冲刺技能,加技能图标倒计时UI制作
- python:txt写入csv:abaqus二次开发rpy文件数据提取
热门文章
- 河大计算机学院足球队,“河大杯”我院足球队两连胜提前晋级淘汰赛
- 云服务器系统镜像选什么,云服务器系统镜像选什么用
- 把VOB格式转换成其它格式的工具
- ocaml_管理OCaml软件包的好工具
- 乐视笔试算法题美团算法笔试题
- (FortiGate)飞塔防火墙产品参数
- matlab中如何对一组复数频域信号进行快速傅里叶逆变换
- 强制关闭计算机窗口,windows系统怎么取消关机时强制关闭程序提示窗口?
- 【愚公系列】2022年12月 使用win11系统自带SSH,远程控制VMware中Liunx虚拟机系统
- 反向延长线段什么意思_《反向延长线》