坐标是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详解(脚本篇---获取坐标)相关推荐

  1. Android测试工具-Monkey详解

    Monkey详解 Monkey详解 一 Monkey简介 二 Monkey测试环境配置 三 执行Monkey 四 常用monkey命令 五 Monkey测试问题分析 Monkey详解 一 Monkey ...

  2. Linux使用详解(进阶篇)

    文章目录 Linux使用详解(进阶篇) 1.Linux目录说明 2.操作防火墙 3.ulimit命令和history命令 4.RPM和Yum的使用 5.设置系统字符集 6.vi & vim编辑 ...

  3. Openharmony应用NAPI详解--基础篇

    NAPI是什么? 简单点理解就是在Openharmony里,实现上层js或ets应用与底层C/C++之间交互的框架. Openharmony里的官方解释:NAPI(Native API)组件是一套对外 ...

  4. Openharmony应用NAPI详解--进阶篇1

    NAPI面向C++的异步接口 3.C++实现NAPI异步接口需要做到三步 同步返回结果给js/ets调用者 另起线程完成异步操作 通过回调(callback)或Promise将异步操作结果返回 4.异 ...

  5. 24.shell中list详解,定义list,获取List的总个数,获取list的某个元素值,将list的每个元素转换成以空格分隔的字符串,空格分隔的字符串转换成list,for循环list

    文章目录 前言 定义list 获取List的总个数 获取list的某个元素值 将list的每个元素转换成以空格分隔的字符串 空格分隔的字符串转换成list for循环list 总结 友情链接 前言 s ...

  6. [转帖]前端-chromeF12 谷歌开发者工具详解 Sources篇

    前端-chromeF12 谷歌开发者工具详解 Sources篇 原贴地址:https://blog.csdn.net/qq_39892932/article/details/82498748 cons ...

  7. mysql binlog协议_MySql-Binlog协议详解-流程篇

    MySql-Binlog协议详解-流程篇 MySql-Binlog在MySql主从不同方面发挥着不可或缺的作用,同时我们也能通过Binlog实时监控数据的变化.本系列就讲述了怎样接收并解析Binlog ...

  8. 百家号 python高手养成_【一点资讯】Python使用PyQt5进行图形界面GUI编程之详解QWidget类的坐标体系 www.yidianzixun.com...

    Python使用PyQt5进行图形界面GUI编程之详解QWidget类的坐标体系 上篇内容,我们详细介绍了使用PyCharm中LiveTemplate功能快速输入一个GUI应用框架的办法.(参见学会这 ...

  9. IIS负载均衡-Application Request Route详解第一篇: ARR介绍

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍   说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Appli ...

最新文章

  1. java 16 -12 静态导入
  2. 自学python该买几本书-自学Python一年,看了几十本书,我发现了这些捷径!
  3. python——类和对象之私有属性
  4. java多线程下载_Java实现多线程下载,支持断点续传
  5. python现在版本强势英雄_当前版本有哪些强势英雄?
  6. 1603 限高二叉排列树(计数DP)
  7. Linux虚拟文件系统(VFS)
  8. 手把手带你写一个JavaScript类型判断小工具
  9. oracle toad 价格,Toad for oracle 软件产品模块对比,方便大家选型。
  10. 140809暑期培训
  11. Blender烘焙贴图生成静态真实场景
  12. 348高校毕业设计选题
  13. Nginx的二进制安装教程
  14. f2fs解析(十)nid 如何从nat_root中删除
  15. 计算机大二学什么,本科计算机科学与技术大二下学期学什么,女的适合什么专业好...
  16. 【原创】Wiki报错:“该文件的加载时间比平时要长。请稍等片刻……”
  17. 【Tesseract-OCR】玩转OCR中文识别
  18. python外星人入侵游戏图片_Python外星人入侵游戏编程完整版
  19. Unity中简单冲刺技能,加技能图标倒计时UI制作
  20. python:txt写入csv:abaqus二次开发rpy文件数据提取

热门文章

  1. 河大计算机学院足球队,“河大杯”我院足球队两连胜提前晋级淘汰赛
  2. 云服务器系统镜像选什么,云服务器系统镜像选什么用
  3. 把VOB格式转换成其它格式的工具
  4. ocaml_管理OCaml软件包的好工具
  5. 乐视笔试算法题美团算法笔试题
  6. (FortiGate)飞塔防火墙产品参数
  7. matlab中如何对一组复数频域信号进行快速傅里叶逆变换
  8. 强制关闭计算机窗口,windows系统怎么取消关机时强制关闭程序提示窗口?
  9. 【愚公系列】2022年12月 使用win11系统自带SSH,远程控制VMware中Liunx虚拟机系统
  10. 反向延长线段什么意思_《反向延长线》