入门介绍
更新: 2026/3/2 字数: 0 字 时长: 0 分钟
基于控件的操作指的是选择屏幕上的控件,获取其信息或对其进行操作。对于一般软件而言,基于控件的操作对不同机型有很好的兼容性;
但是对于游戏而言,由于游戏界面并不是由控件构成,无法采用本章节的方法,也无法使用本章节的函数。 有关游戏脚本的编写请参考
基于控件的操作依赖于系统或应用提供的控件信息,脚本可使用选择器selector(mode)查找控件,并对其进行点击、滚动、输入等操作。
模式差异化说明
| 模式 | 依赖 | 查找控件方式 | 支持范围 | 操作/交互/输入 | 速度 |
|---|---|---|---|---|---|
| 无障碍 | 无障碍服务 | selector() 或 selector(0) 可省略 | 当前窗体 & 全部窗体 (开启稳定模式更快,但部分控件被过滤) | 支持直接点击、滚动与输入 | 20~50ms |
| HID/数字助理 | HID / 辅助应用 | 必须 selector(1) | 当前窗体 (部分布局节点获取不到) | $hid 模块模拟坐标点击/滑动 $input 模块输入 | 20~50ms |
| ADB/XML解析 | adb shell / root | 必须 selector(2) | 仅静态布局 (动态布局报错 ERROR: could not get idle state) | $shellHttp 模块模拟坐标点击/滑动 $input 模块输入 | 500~2000ms |
推荐使用
无障碍模式(首选)
- ✅ 优点:速度快、操作简单、支持直接点击/滚动/输入、可跨窗体操作
- ⚠️ 缺点:必须开启无障碍服务,服务特征暴露
HID/数字助理模式(次选)
ADB/XML解析模式(最后选)
- ✅ 优点:不需要开无障碍服务
- ⚠️ 缺点:需要开启开发人员选项或ROOT,速度慢(1~2秒),仅支持静态布局,动态布局会报错,操作需通过 $shellHttp 模块模拟坐标点击/滑动,中文输入可通过 $input 模块;
⚠️ 所有 API 在三种模式下基本相同,差异主要在控件查找时需要通过
selector(mode)和交互方式。 具体使用时,可参考每个 API 下的模式提示。
无障碍
基于控件的操作依赖于无障碍服务,因此最好在脚本开头使用auto()函数来确保无障碍服务已经启用。如果运行到某个需要权限的语句无障碍服务并没启动,则会抛出异常并跳转到无障碍服务界面。这样的用户体验并不好,因为需要重新运行脚本,后续会加入等待无障碍服务启动并让脚本继续运行的函数。
您也可以在脚本开头使用"auto";表示这个脚本需要无障碍服务,但是不推荐这种做法,因为这个标记必须在脚本的最开头(前面不能有注释或其他语句、空格等),我们推荐使用auto()函数来确保无障碍服务已启用。
- 参阅auto
HID/数字助理
ADB/XML解析
- 参阅$shellHttp
- 参阅shell
- 参阅root
云控 App 布局分析控件节点演示
本教程演示如何使用 云控 App 进行布局节点分析和控件操作,适用于初学者快速上手控件查找与点击的基本方法。
云控系统在线开发工具布局分析演示
本示例展示如何通过 云控系统在线开发工具 进行布局节点分析。该平台支持远程在线编辑、调试和控件可视化查找,适用于无设备情况下的快速开发和测试。
