可以使用adb tcpip 端口在Android设备上启动一个指定的端口,然后使用adb connect Android设备ip:端口远程连接Android设备。
uiautomator 是一个 java 库,包含用于创建自定义功能UI测试的API,以及用于自动执行和运行测试的执行引擎。使用uiautomator help可以查看帮助信息。此处我们主要使用uiautomator dump来获取当前屏幕的UI层次结构的XML文件。默认存储文件的位置/sdcard/window_dump.xml,也可以指定存放的位置uiautomator dump /data/local/tmp/ui.xml。
input可以用来模拟各种输入操作,例如:发送文本、点击控件、滑动坐标。使用input可以查看帮助信息。
- input text abc:输入文本abc
- input tap x坐标 y坐标:点击坐标位置x,y
- input swipe x1坐标 y1坐标 x2坐标 y2坐标:从x1,y1坐标滑动到x2,y2坐标
1080×713 54.7 KB
好了,当我们配置好Android开发环境,大概了解adb命令的作用之后,同时知道了Android设备上的uiautomator和input命令后,就开始我们进入今天的重点了,使用这些命令来组合成自动化的操作。
首先呢,我们需要找一个我们练习用的APP,今天我们选择的是”摩拜单车“。大家可以在此处下载安装包文件。
下载完成之后,我们把Android设备使用usb线连接到电脑。使用adb devices来确认设备是否连接成功。
1080×343 31.5 KB
设备已经连接成功,我们需要把“摩拜单车”应用安装到Android设备上,执行adb install 摩拜单车安装文件,“有些手机权限管理比较严格,可能需要在手机上点击同意安装此应用。”
1080×402 56.5 KB
进入Android设备的终端下
1080×346 34.2 KB
我们先打开摩拜单车应用,然后去查看一下页面的源码
执行后会生成一个.xml文件。文件结构如下。每个控件都是由组成。
我们可以按照、结构来进行拆分。使用的命令行为:
点击
根据控件中的bounds="[x1,y1][x2,y2]"属性来查找控件中心点的 x,y轴坐标,计算方法是(x1+x2)/2,(y1+y2)/2
1080×670 81.8 KB
然后使用上面的方法得到的x,y坐标来点击应用图标input tap 167.5 219。最后写成一个函数,只要传递控件的名字就能点击相应的图标啦。
点击坐标,因为我的手机上面显示了两条关于摩拜应用的坐标,一个是应用图标的,一个是应用文本的,选择其中一个即可。
wm size命令可以查看屏幕分辨率,然后提取分辨率的数值adb shell wm size |awk -F ’ |x’ '{print $3,$4} ,这里使用了空格或者x做分隔符。
1080×421 45 KB
使用swipe x1 y1 x2 y2进行滑动。例如(下面数值均为随机数值):
从右向左滑动:swipe 0.3 0.8 0.7 0.8
从左向右滑动:swipe 0.7 0.8 0.3 0.8
从上向下滑动:swipe 0.8 0.7 0.8 0.3
从下向上滑动:swipe 0.8 0.3 0.8 0.7
打开APP并停留12秒
整体的运行效果是这样的。
关闭提示并登录
整体的运行效果是这样的。
输入手机号并登录
整体的运行效果是这样的(上图手机号为随机填写)。
当然,脚本自动化远不止上面这些。你需要知道更多。比如awk,sed 命令功能深入了解,adb到底还有什么好用的参数?adb 的运行原理?