设备
蓝叠模拟器 ADB 端口与连接设置(BlueStacks)
在 BlueStacks 5 中开启 ADB,找到蓝叠模拟器 ADB 端口,连接 Macro Automation Studio,并解决 Windows 和 Mac 上找不到设备与设备离线的错误。
- Windows
- Mac
- 模拟器
- Studio
- Python SDK
本页目录
这篇指南介绍如何通过 ADB 把 BlueStacks(蓝叠模拟器)连接到 Macro Automation Studio(MAS):开启 ADB、找到蓝叠模拟器 ADB 端口,并把实例添加为设备。内容覆盖 Windows 上的 BlueStacks 5 和面向 Apple Silicon Mac 的 BlueStacks 版本,最后列出大家最常遇到的错误。
开始之前
- 已在 Windows 10 或 11,或 Apple Silicon Mac 上安装并登录 MAS。试用期内 MAS 可免费下载;从下载页获取。
- 已从 bluestacks.com 安装 BlueStacks 并至少启动过一次。
- 实例已完全启动到安卓主屏幕。
- 要自动化的应用已在 BlueStacks 中安装并登录。
1. 安装 BlueStacks
- 从官方网站下载 BlueStacks 5 并运行安装包。
- 启动 BlueStacks,等待主屏幕出现。
- 在把设备添加到 MAS 之前,先安装并登录要自动化的应用。
- 从 bluestacks.com/mac 下载 Apple Silicon 版本 BlueStacks Air。
- 打开 DMG,把 BlueStacks 拖到应用程序。
- 从应用程序启动它,等待主屏幕出现。
2. 推荐设置
MAS 逐像素匹配模板图片,所以截取模板之后显示设置不能再变。从侧边工具栏的齿轮图标打开设置,按下表设定:
| 标签页 | 设置项 | 取值 |
|---|---|---|
| 性能 | CPU 分配 | 2 核;开发期间给更多也可以 |
| 性能 | 内存分配 | 4 GB 或更多(如果有) |
| 显示 | 分辨率 | 竖屏,540 x 960 |
| 显示 | 像素密度 | 240 DPI |
点击保存更改,BlueStacks 要求时重启实例。按 MAS 基准编写的宏预期 540x960、240 DPI;你自己写的宏预期的是你在 Asset Lab 中截取时的分辨率。如果运行卡顿,关闭后台应用,给实例分配更多核心和内存。
3. 在 BlueStacks 5 中开启 ADB
BlueStacks 出厂时 ADB 是关闭的。MAS 需要它打开。
- 点击侧边工具栏的齿轮图标打开设置。
- 点击高级标签页。
- 打开 Android Debug Bridge(安卓调试桥)。
- 点击保存更改。
- 记下开关下方显示的地址,例如
127.0.0.1:5555。冒号后面的数字就是 ADB 端口。第一个实例通常得到 5555;下面的截图显示的是 5625。
- 从侧边工具栏的齿轮图标或顶栏的菜单图标打开设置。
- 查找 Android Debug Bridge 选项。官方的 BlueStacks Air 设置指南列出了性能、显示、图形、偏好设置和关于,没有 ADB 开关。较早的 macOS 版 BlueStacks 在偏好设置中有这个开关。
- 如果你的版本有这个选项,打开它,保存,并记下
127.0.0.1后面的端口。 - 如果没有,MAS 无法连接这个版本。请改用在 Mac 上暴露 ADB 的其他模拟器,或使用云设备。
4. 蓝叠模拟器 ADB 端口与 MAS 的扫描方式
MAS 不通过运行 adb devices 来发现模拟器。它扫描运行中的进程,只有满足以下全部条件时才保留端口:
- 进程名包含
hd-player或bluestacks。 - 端口在 5555 到 8500 之间。
- 套接字监听在
127.0.0.1、0.0.0.0或所有网卡上。
匹配的端口会出现在添加新设备对话框中,标注为 Bluestacks,例如 5555 - Bluestacks。MAS 在你打开设备组时以及每次点击刷新时扫描。每个 BlueStacks 实例监听自己的端口,所以两个实例会给出两项。
5. 在 MAS 中通过 ADB 连接 BlueStacks
- 在侧边栏打开设备组,打开一个组,或新建一个。
- 点击添加设备。
- 输入不超过 50 个字符的设备名称。
- 在端口中选择这个实例对应的
Bluestacks项。列表为空时点击刷新。 - 如果 BlueStacks 显示的端口 MAS 没有列出,选择自定义端口并输入。MAS 接受 1024 到 65535。
- 可选:选择一个启动宏。
- 点击添加设备,然后在设备卡片上点击启动。
卡片会显示连接中,然后是运行中。MAS 启动自己的 adb 服务器,移除 127.0.0.1:<port> 的任何过期条目,然后对它运行 adb connect。
BlueStacks 上的宏
BlueStacks 自带的宏录制器按固定坐标重放点击。MAS 宏是一段先看屏幕的 Python 脚本:模板匹配找到按钮,OCR 读取文字,重试机制吸收加载缓慢或弹窗。快速开始运行你的第一个宏,图像识别宏把录制的流程重建为会看屏幕的宏,定时任务让它每天、每周或每月运行。
多个 BlueStacks 实例
在多开管理器中创建的每个实例都监听自己的 ADB 端口。把每个实例作为单独的设备添加到同一个设备组,给每个指定宏和设置方案,然后在组上使用全部启动和全部停止。按设备设置参数和代理,参见设备组。
故障排查
在 BlueStacks 5 中开启 ADB
MAS 中的端口列表为空,adb connect 127.0.0.1:5555 返回 “cannot connect” 或 “connection refused”。ADB 是关闭的。打开设置,点击高级,打开 Android Debug Bridge,点击保存更改,重启实例,然后在添加新设备中点击刷新。如果高级标签页没有这个开关,从官方网站安装当前的 BlueStacks 5。
查找或更改 ADB 端口
端口显示在 Android Debug Bridge 开关下方,形式为 127.0.0.1:<port>。BlueStacks 在启动时分配端口,5555 被占用时会换到其他端口,所以创建、克隆或删除实例之后端口可能改变;官方 ADB 指南没有提供手动设定端口的选项。端口变化时,在 MAS 的卡片上点击编辑设备并选择新端口。按相同顺序启动实例可以让端口保持稳定。
ADB 找不到设备
卡片以错误结束并显示 “Failed to start device”,日志写着 “unable to connect to device”,或者脚本抛出 DeviceNotConnectedError。
- 实例还在启动。等主屏幕出现后再点击启动。
- 卡片上的端口不是 BlueStacks 显示的端口。用编辑设备修正。
- 一次更新又把 ADB 关掉了。检查高级标签页。
- 在终端运行
adb connect 127.0.0.1:<port>。返回 “connected to” 就说明 MAS 也能连上。
设备显示 offline
adb devices 列出 127.0.0.1:<port> offline,命令卡住。实例内的 adb 守护进程停止响应了,通常发生在休眠、更新或机器上出现第二个 adb 服务器之后。在卡片上点击停止,重启实例,关闭其他运行自带 adb 服务器的工具,然后点击启动;MAS 会从头重新连接。仍然离线时,重启 MAS 让它的 adb 服务器干净地启动。更多修复方法见 ADB 故障排查。
Mac 上的 BlueStacks ADB
Mac 上有两点不同。第一,MAS 需要一个 adb 可执行文件:它先在应用包内查找,然后是你的 PATH,最后是 Homebrew 的目录。如果 MAS 提示 “ADB executable not found. Please install ADB using your package manager”,用 Homebrew 安装 adb 后重启 MAS:
brew install android-platform-tools第二,MAS 始终连接 127.0.0.1,所以 BlueStacks 必须运行在同一台 Mac 上并暴露 ADB。BlueStacks Air 是 Apple Silicon 上唯一的版本,它的文档所列设置中没有 ADB 开关;没有这个开关,MAS 就无法驱动它。
用 Python 控制它
卡片处于运行中时,宏的 src/app.py 通过 mas 包驱动 BlueStacks。端口由 MAS 选择,所以脚本从不引用它。
import mas
size = mas.get_screen_size()
mas.log(f"BlueStacks screen is {size.width}x{size.height}")
match = mas.find_object_retry(1234, total_tries=3, time_sleep=2.0)
if match:
mas.click(match.x, match.y)各命名空间见 SDK 概览;完整的第一个脚本见用 Python 控制安卓模拟器。
下一步
相关页面
谢谢。如果有哪里不对,请在 Discord 告诉我们。
有疑问? 在 Discord 提问