搜索

开始

图像识别脚本的工作原理:MAS 核心概念

图像识别脚本在 MAS 中如何工作:模板图片和 OCR 读取安卓屏幕,拟人化输入通过 adb 发送,以及宏在哪里运行。

  • Windows
  • Mac
  • 模拟器
  • 云手机
  • 手机
  • Studio
  • Python SDK
入门 更新于 阅读约 6 分钟
本页目录
  1. 图像识别脚本如何”看”屏幕
  2. 模板图片
  3. 安卓上的 OCR 自动化
  4. 拟人化输入
  5. 坐标与屏幕尺寸
  6. 术语表
  7. 各部分在哪里运行
  8. 你的电脑驱动模拟器
  9. 云设备在 MAS 的云端运行
  10. 脚本通过 JSON-RPC 与应用通信
  11. AI 只在编写时参与,运行时不参与
  12. 订阅
  13. 下一步

Macro Automation Studio(MAS)像人一样自动化安卓应用:看屏幕、做判断、然后点击。这一页解释图像识别脚本是如何工作的、你在应用里会遇到的名词,以及每个部分在哪里运行。读完这一页,其余的文档就都能看懂了。

图像识别脚本如何”看”屏幕

MAS 不修改 APK,也不读取应用内存。它从外部通过 adb 工作,依靠三个基本构件。

模板图片

模板是屏幕上的一小块裁剪:一个按钮、一个图标、一个角标。你在 Asset Lab 中从实时设备画面裁剪它,它会带着一个数字 ID 进入你的图片库,脚本通过这个 ID 引用它。运行时,find_object 截取一张新截图,用 OpenCV 模板匹配在其中搜索模板。匹配默认需要 0.8 的相似度(threshold=0.8),返回中心点,所以下一行就可以点击。

图片文件可以是 jpg、png、gif 或 webp,单张最大 10 MB。模板要小而有辨识度:整屏截图只能匹配那一个屏幕,而一个按钮在任何出现的地方都能匹配。

安卓上的 OCR 自动化

文字通过 read_text 用 Tesseract OCR 读取。你传入一个 Region(x1, y1, x2, y2),让引擎只看一个计数器或一个标签,而不是整个屏幕,再加上一个页面分割模式(psm=7 表示单行,psm=8 表示单个词)。ColorConversion.BLACK_WHITE 对嘈杂背景上的彩色文字很有帮助。Asset Lab 有实时 OCR 测试,你可以在写进代码之前先调好区域。

拟人化输入

输入以真实的触摸和按键事件发送:clickswipeinput_textkey_presszoom_inzoom_out。时间节奏由你决定。click 在点击后等待 delay_ms=1000swipe 持续 duration_ms=1000,按住 500 毫秒以上的按键算作长按。更慢、间隔更松的宏看起来没那么机械。

坐标与屏幕尺寸

每个坐标都是相对屏幕左上角的像素偏移。get_screen_size() 返回宽和高;get_device_info() 返回同样的信息外加设备名称。模板和区域与你截取它们时的分辨率和 DPI 绑定,所以运行同一个宏的每台设备都要和制作时的分辨率保持一致。各篇模拟器指南推荐了每款模拟器的尺寸,云设备则以固定的显示预设创建。

术语表

术语在 MAS 中的含义
在一台设备上自动化一项任务的 Python 程序。你运行、定时、分享和出售的单位。
项目宏背后的文件夹:src/app.py、可选的参数表单、资源和 git 历史。
设备MAS 能驱动的一个安卓目标,用它的 adb 端口标识;云设备则用它的 ID。
设备组设备组页上一组有名字的设备。组里每台设备都有自己的宏、参数、代理和 Webhook;全部启动会依次运行它们。
设置方案一个宏的一组有名字的参数值。设备跟随某个方案,修改方案会更新所有使用它的设备。“Default” 方案始终存在。
云设备MAS 在自己的服务器上为你运行的安卓设备。它上面的宏在服务端运行,屏幕通过 WebRTC 串流。
MAS AgentAgent 页上的 AI 编写者。描述任务,它会探索设备,在需要决定时提问,并编译出一个通过 3 次验证运行的宏。
Marketplace应用内的现成脚本目录。下载一个,它就成为页里的一个宏。
Asset Lab在实时画面上裁剪模板、拾取坐标点和测试 OCR 区域的辅助工具。
UI Builder参数表单(.uibproj)和运行时仪表盘(.uibrt)的设计器。
Code EditorMAS 内置的 Python IDE,从页按项目打开,带调试器和运行控制台。

各部分在哪里运行

有三个地方在干活,知道自己在看哪一个会很有帮助。

你的电脑驱动模拟器

你电脑或 Mac 上的 MAS 通过进程名和监听端口找到模拟器,然后用 adb connect 127.0.0.1:<port> 与每一个通信。本地设备的截图、点击和 OCR 都在你的机器上完成,所以宏运行期间应用必须保持打开。定时任务也是一样。

云设备在 MAS 的云端运行

云设备位于 MAS 的服务器上。你在它上面运行宏时,MAS 会上传项目的一个快照,并在设备旁边运行它。你可以在应用里实时观看屏幕,也可以完全关掉应用;运行都会继续。空闲的设备大约一小时不活动后会停止,并保留数据。

脚本通过 JSON-RPC 与应用通信

宏是一个普通的 Python 进程。MAS 在自己的 Python 3.13 环境中以 python -u -m src.app 启动它,并通过环境变量(MAS_RPC_PORTMAS_RPC_HOSTMAS_DEVICE_IDMAS_SESSION_TOKEN)传入连接信息。每个 mas.* 调用都是一个通过本地套接字发出的 JSON-RPC 2.0 请求;应用掌管 adb、OpenCV 和 Tesseract,并把结果送回来。在云设备上,同样的调用通过沙盒内的 unix 套接字传输。这就是为什么 import mas 不需要安装,也是为什么在 MAS 之外启动的脚本会报 “Could not discover RPC port”。

AI 只在编写时参与,运行时不参与

MAS Agent 在探索和编译时消耗 AI 积分。它产出的宏是普通 Python,和其他宏一样在你的模拟器或云设备上运行,过程中不需要 Agent 参与。

订阅

应用里除登录页和订阅页之外的每一页都需要有效的订阅权限:免费试用或付费套餐。套餐按设备数计量,也就是你自己的模拟器或手机可以同时运行多少台。云设备是附加项,自带每月积分,还可以为 Agent 会话额外充值积分。取消订阅后,访问权限保留到已付费周期结束。计费页解释具体机制;数字见价格页

下一步

设备页设置一台设备,在 Asset Lab 裁剪第一个模板,或者如果你更想从代码开始,阅读 SDK 概览

下一步

相关页面

这个页面有帮助吗?

有疑问? 在 Discord 提问