我们开发的自动化脚本不管有多复杂都可以在整体上分成三个部分:定位目标元素位置、操作目标元素和输入文本数据。举个例子,需求:在app中搜索商品;实现:首先定位到输入框控件,然后输入文本到输入框,最后在定位“搜索”控件并点击搜索。
一、定位目标元素
定位目标元素指通过技术手段找到要操作的控件,在冰狐中有多种方法实现定位目标元素,每种方法都有各自的特点,适合不同的应用场景:
1.无障碍
使用无障碍需要先打开无障碍权限,然后通过ui树来查找页面上控件元素的text、id、className等tag,然后通过
无障碍控件操作api来进行定位和操作。参考:
findView等。毫无疑问无障碍是所有方案中最强大的,是首选方案,但是有的app由于其他原因可能会限制无障碍的运行,如果无障碍被限制后,就要采取下面的方案了。
2.ocr
ocr用于识别手机界面上的文字,返回识别到的文字和对应的坐标位置,适用于目标元素是文本的场景,参考:
ocr、
ocrFindView等。
3.找色
找色指在手机界面上搜索和目标颜色匹配的区域,返回识别到的目标区域,适用于目标元素是文本、图片、或其用颜色容易区分的区域。找色看起是找颜色,实际上用处非常广,可以使用冰狐的图色工具制作类似“字库”(文字识别),也可以实现“找图”功能(图片识别),直接比对,非常精确,效率也非常高。在某些场景下可能无法使用无障碍,找色是非常好的替代方案。参考:
findColor、
compareColors。
4.找图
找图指在像素级别上在手机界面中搜索和目标图片匹配的区域, 返回目标图片在手机中区域。可以使用冰狐的图色工具来截图,非常方便。参考:
findImage。
5.yolo
冰狐提供的YoloV8是基于深度学习(ai大模型)的图片检测、识别算法,不同的分辨率也可以很好的识别,比任何基于OpenCV的找图算法强很多。如果分类比较多,请使用更多的训练图片,否则识别率会降低。参考:
yolo。
6.绝对坐标
若我们所有的手机都是同一个型号(有相同的分辨率)。某些情况下,根据实际应用场景,用冰狐的图色工具找到目标点坐标,然后直接点击固定的区域。
二、操作目标元素
针对目标元素最典型的操作有点击、滑动等,在冰狐中有如下方法可以实现操作目标元素,适合不同的应用场景:
1.无障碍
使用无障碍来实现点击和滑动比较简单,功能比较强大,是首选方案,但是有的app由于其他原因可能会限制无障碍的运行,如果无障碍被限制后,就要采取下面的方案了。参考:
click、
scroll等。
2.蓝牙hid
冰狐提供的蓝牙HID客户端是通用的,对应的硬件模块为蓝牙HID服务端,也即用户可以直接使用BleClient和蓝牙HID硬件进行通信。这是一个通用接口,支持任何蓝牙HID硬件,可以轻松实现点击、滑动、各种按键等。即可使用冰狐的蓝牙硬件,也可以使用其他的蓝牙硬件。参考:
click、
swipe等。
3.usb hid
冰狐提供USB HID客户端,对应的硬件模块为USB HID服务端(比如ESP32 S3等),也即用户可以直接使用UsbClient和USB HID硬件进行通信。这是一个通用接口,支持任何USB HID硬件,可以轻松实现点击、滑动、各种按键。参考:
click、
swipe等。
4.Shizuku
Shizuku允许应用直接使用需要高权限的系统API,而无需通过root,从而提高了效率和安全性。支持ADB命令,用户可以查看和管理应用程序的权限,确保只授予必要的权限,保护隐私和安全。
注意在使用之前必须先下载并安装shizukuapp。打开shizuku后,app界面会显示操作方法,android11及以上建议使用无线调试模式,无线调试模式不需要pc机来配合使用(推荐使用该模式)。其他android版本使用adb调试模式,该模式需要pc机来执行adb命令来开启和授权shizuku服务,授权服务后手机可以和pc断开连接。由于adb是使用shizuku来实现的,所以直接参考adb的操作即可。参考:
click、
swipe等。
5.adb
冰狐提供的adb功能不需要链接手机和电脑,是使用shizuku来实现的自动化操作的,所以请按shizuku文档先安装和配置好shizuku。可以轻松实现点击、滑动、各种按键等操作。参考:
click、
swipe等。
6.root
狐支持在已经被root过的手机上使用root权限开发自动化脚本。可以轻松实现点击、滑动、各种按键等操作。参考:
click、
swipe等。
三、输入文本
有时候我们需要在手机界面中输入文本,比如在搜索框输入商品名字等。在冰狐中多有种方法可以实现输入文本:
1.无障碍
使用无障碍输入文字,一般目标控件是EditText等可编辑控件,支持paste或者set两种操作方式,对于有些输入控件是view等不可编辑控件则无法胜任了。参考:
paste。
2.输入法
冰狐自己实现了一个输入法专门用于输入文本,直接调用冰狐api即可在任何情况下输入文本,非常方便、高效,是最优选择没有之一(前提是需要先在手机设置中开启冰狐输入法即可)。参考:
inputText。
马上试下效果?,请点击这里查看hello world!源码程序,请点击这里查看如何不编程实现自动化脚本。