设备
安卓模拟器 ADB 连接:模拟器、云手机和真机
Macro Automation Studio 中的安卓模拟器 ADB 连接:它能发现的模拟器、adb 端口规则、按端口添加设备、云设备,以及你自己的手机。
- Windows
- Mac
- 模拟器
- 云手机
- 手机
- Studio
- Python SDK
本页目录
Macro Automation Studio(MAS)中的安卓模拟器 ADB 连接从一台设备开始:这台电脑上的安卓模拟器、MAS 云端的云设备(云手机),或者作为进阶路径的你自己的手机。这一页解释 MAS 如何发现模拟器、如何添加一台,以及另外两种设备各自的位置。
开始之前
- 已安装 MAS 并用有效的试用或套餐登录。参见安装 MAS。试用期内 MAS 可免费下载;从下载页获取。
- 模拟器:模拟器正在运行,并且已在其设置中打开 ADB。BlueStacks、LDPlayer、MuMu Player 和 MEmu 指南会说明位置。
- 云设备:带有云设备附加项的套餐。参见云设备。
MAS 如何找到模拟器的 adb 端口
MAS 不通过运行 adb devices 来找模拟器。它扫描运行中的进程,寻找已知的模拟器名称,读取每个进程监听的 TCP 端口,只保留落在该模拟器已知范围内的端口。只有绑定到 127.0.0.1、0.0.0.0 或所有网卡的端口才算数。结果填入添加新设备对话框的端口列表,每个端口一项,旁边标着模拟器名称。
| 模拟器 | MAS 查找的进程名 | MAS 接受的端口 |
|---|---|---|
| BlueStacks | HD-Player、BlueStacks | 5555 到 8500 |
| LDPlayer | LdVBoxHeadless、Ld9BoxHeadless、dnplayer、LDPlayer、VBoxNetNAT | 5555 到 5599 之间的奇数端口 |
| Nox | NoxVMHandle | 62001 到 63000 |
| MEmu | MEmuHeadless、MEmuHyper | 21503 及其之上、30000 以下所有以 3 结尾的端口 |
| MuMu Player | NemuHeadless、MuMu | 5555 到 5599 之间的奇数端口、7555、16384 到 16576,或 26624 到 27264 |
每个模拟器实例监听自己的端口,所以两个 BlueStacks 窗口会显示为两项。如果你的模拟器不在表中,或者它监听的端口在范围之外,你仍然可以手动输入端口。
把安卓模拟器添加为自动化设备
- 在 MAS 中打开设备组,点击新建组。
- 输入名称(3 到 255 个字符),类型保持本地,点击创建组。
- 打开这个组,点击添加设备。
- 输入不超过 50 个字符的设备名称。
- 在端口下选择端口。点击刷新可重新扫描。端口不在列表里时,选择自定义端口并输入(1024 到 65535)。
- 可选:选择一个启动宏。
- 点击添加设备。
设备卡片显示它的端口、宏和状态:已停止、连接中、启动中、运行中、停止中或错误。启动用 adb connect 127.0.0.1:<port> 连接模拟器并启动宏;停止结束运行。一个端口只能属于一台设备;重复添加会失败并提示 “Port is already in use”。之后要改端口,点击编辑设备。
同一个组里的多台设备可以使用不同的宏、参数和设置方案,全部启动会依次运行它们。参见设备组。
云设备
云设备是 MAS 为你运行的安卓设备。你在云设备页用创建按钮创建它,选择 Android 版本、显示预设和 DPI,这些在设备的整个生命周期内固定不变。启动开机,查看打开通过 WebRTC 串流的实时屏幕,运行启动一个在你关掉应用后仍继续的宏。已停止的设备保留数据;一个账户最多可持有 20 台云设备。其余内容,包括 APK 安装和配额,见云设备页。
你自己的手机
MAS 按端口添加每台本地设备,并且始终连接 127.0.0.1。没有 USB 配对界面,也没有无线配对界面。因此,手机只有在它的 adb 守护进程能通过这台电脑的某个 TCP 端口访问到时才能工作。通过 USB 的话,用 adb 端口转发就能做到。
- 在手机上开启开发者选项和 USB 调试,然后插上手机。
- 在电脑上运行
adb devices,并在手机上接受授权提示。手机的序列号必须显示为device。 - 让手机的 adb 守护进程同时监听 TCP:
adb tcpip 5555。 - 把本地端口转发到它:
adb forward tcp:5580 tcp:5555。任选一个空闲的本地端口;5580 只是示例。 - 检查:
adb connect 127.0.0.1:5580应该返回 “connected”。 - 在 MAS 中添加设备,自定义端口设为
5580。
保持手机插着且屏幕常亮。屏幕尺寸和 DPI 来自手机,所以在模拟器上裁剪的模板不会匹配;请在 Asset Lab 中从手机画面裁剪。
无线调试同理:手机配对并通过 adb connect <phone-ip>:<port> 连接后,把一个本地端口转发到手机的 adb 端口,然后在 MAS 中添加这个本地端口。
用 Python 控制它
SDK 不关心底层是哪种设备。mas.get_device_info() 返回名称和屏幕尺寸,mas.get_screen_size() 只返回尺寸,每一次点击、滑动和截图都走同样的调用。脚本由 MAS 启动,设备已经绑定好,所以代码里不需要连接任何东西。从 SDK 概览开始。
故障排查
端口列表为空
模拟器没有运行、它的设置中 ADB 没开,或者它不是 MAS 扫描的模拟器之一。等模拟器启动完成后点击刷新。仍然为空时,用自定义端口填入模拟器自身设置中显示的端口。参见 ADB 故障排查。
Port is already in use
你的某个组里已有另一台设备占用了这个端口。每个端口只能添加一次。删除旧条目,或改选另一个实例的端口。
设备一直停在”连接中”或以”错误”结束
MAS 无法完成 adb connect,或者模拟器拒绝了第一条命令。检查端口,确认 ADB 已开启,然后按照 ADB 故障排查处理。
下一步
相关页面
谢谢。如果有哪里不对,请在 Discord 告诉我们。
有疑问? 在 Discord 提问