跳转到内容

入门介绍

更新: 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

推荐使用

  1. 无障碍模式(首选)

    • ✅ 优点:速度快、操作简单、支持直接点击/滚动/输入、可跨窗体操作
    • ⚠️ 缺点:必须开启无障碍服务,服务特征暴露
  2. HID/数字助理模式(次选)

    • ✅ 优点:速度较快、安全稳定,不需要开无障碍服务
    • ⚠️ 缺点:部分界面节点获取不到,操作需通过 $hid 模块模拟坐标点击/滑动/输入,中文输入可通过 $input 模块或先设置剪贴板再粘贴的方式完成。
  3. ADB/XML解析模式(最后选)

    • ✅ 优点:不需要开无障碍服务
    • ⚠️ 缺点:需要开启开发人员选项ROOT,速度慢(1~2秒),仅支持静态布局,动态布局会报错,操作需通过 $shellHttp 模块模拟坐标点击/滑动,中文输入可通过 $input 模块;

⚠️ 所有 API 在三种模式下基本相同,差异主要在控件查找时需要通过selector(mode)和交互方式。 具体使用时,可参考每个 API 下的模式提示。


无障碍

基于控件的操作依赖于无障碍服务,因此最好在脚本开头使用auto()函数来确保无障碍服务已经启用。如果运行到某个需要权限的语句无障碍服务并没启动,则会抛出异常并跳转到无障碍服务界面。这样的用户体验并不好,因为需要重新运行脚本,后续会加入等待无障碍服务启动并让脚本继续运行的函数。

您也可以在脚本开头使用"auto";表示这个脚本需要无障碍服务,但是不推荐这种做法,因为这个标记必须在脚本的最开头(前面不能有注释或其他语句、空格等),我们推荐使用auto()函数来确保无障碍服务已启用。

HID/数字助理

ADB/XML解析

云控 App 布局分析控件节点演示

本教程演示如何使用 云控 App 进行布局节点分析和控件操作,适用于初学者快速上手控件查找与点击的基本方法。

云控系统在线开发工具布局分析演示

本示例展示如何通过 云控系统在线开发工具 进行布局节点分析。该平台支持远程在线编辑、调试和控件可视化查找,适用于无设备情况下的快速开发和测试。