# 安卓模拟器 ADB 连接：模拟器、云手机和真机

> Macro Automation Studio 中的安卓模拟器 ADB 连接：它能发现的模拟器、adb 端口规则、按端口添加设备、云设备，以及你自己的手机。

Source: https://automationmacro.com/zh-CN/docs/devices (设备, updated 2026-09-05)

Macro Automation Studio（MAS）中的安卓模拟器 ADB 连接从一台设备开始：这台电脑上的安卓模拟器、MAS 云端的云设备（云手机），或者作为进阶路径的你自己的手机。这一页解释 MAS 如何发现模拟器、如何添加一台，以及另外两种设备各自的位置。

## 开始之前

- 已安装 MAS 并用有效的试用或套餐登录。参见[安装 MAS](/docs/install)。试用期内 MAS 可免费下载；从[下载页](/download)获取。
- 模拟器：模拟器正在运行，并且已在其设置中打开 ADB。[BlueStacks](/docs/bluestacks-setup-guide)、[LDPlayer](/docs/ldplayer-setup-guide)、[MuMu Player](/docs/mumu-setup-guide) 和 [MEmu](/docs/memu-setup-guide) 指南会说明位置。
- 云设备：带有云设备附加项的套餐。参见[云设备](/docs/cloud-devices)。

## 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 窗口会显示为两项。如果你的模拟器不在表中，或者它监听的端口在范围之外，你仍然可以手动输入端口。

> [!TIP]
> MAS 扫描的是进程，所以添加时请保持模拟器窗口打开。已停止的实例没有可供发现的端口。

## 把安卓模拟器添加为自动化设备

1. 在 MAS 中打开**设备组**，点击**新建组**。
2. 输入**名称**（3 到 255 个字符），类型保持**本地**，点击**创建组**。
3. 打开这个组，点击**添加设备**。
4. 输入不超过 50 个字符的**设备名称**。
5. 在**端口**下选择端口。点击**刷新**可重新扫描。端口不在列表里时，选择**自定义端口**并输入（1024 到 65535）。
6. 可选：选择一个**启动宏**。
7. 点击**添加设备**。

设备卡片显示它的端口、宏和状态：已停止、连接中、启动中、运行中、停止中或错误。**启动**用 `adb connect 127.0.0.1:<port>` 连接模拟器并启动宏；**停止**结束运行。一个端口只能属于一台设备；重复添加会失败并提示 "Port is already in use"。之后要改端口，点击**编辑设备**。

同一个组里的多台设备可以使用不同的宏、参数和设置方案，**全部启动**会依次运行它们。参见[设备组](/docs/device-groups)。

## 云设备

云设备是 MAS 为你运行的安卓设备。你在**云设备**页用**创建**按钮创建它，选择 Android 版本、显示预设和 DPI，这些在设备的整个生命周期内固定不变。**启动**开机，**查看**打开通过 WebRTC 串流的实时屏幕，**运行**启动一个在你关掉应用后仍继续的宏。已停止的设备保留数据；一个账户最多可持有 20 台云设备。其余内容，包括 APK 安装和配额，见[云设备](/docs/cloud-devices)页。

## 你自己的手机

> [!WARNING]
> 驱动手机不是应用经过测试的功能。下面的步骤源自 MAS 连接设备的方式，但 MAS 团队没有在每款手机上验证过。如果对你不起作用，请到 [Discord](https://discord.gg/macroautomationstudio) 提问。

MAS 按端口添加每台本地设备，并且始终连接 `127.0.0.1`。没有 USB 配对界面，也没有无线配对界面。因此，手机只有在它的 adb 守护进程能通过这台电脑的某个 TCP 端口访问到时才能工作。通过 USB 的话，用 adb 端口转发就能做到。

1. 在手机上开启**开发者选项**和 **USB 调试**，然后插上手机。
2. 在电脑上运行 `adb devices`，并在手机上接受授权提示。手机的序列号必须显示为 `device`。
3. 让手机的 adb 守护进程同时监听 TCP：`adb tcpip 5555`。
4. 把本地端口转发到它：`adb forward tcp:5580 tcp:5555`。任选一个空闲的本地端口；5580 只是示例。
5. 检查：`adb connect 127.0.0.1:5580` 应该返回 "connected"。
6. 在 MAS 中添加设备，**自定义端口**设为 `5580`。

保持手机插着且屏幕常亮。屏幕尺寸和 DPI 来自手机，所以在模拟器上裁剪的模板不会匹配；请在 Asset Lab 中从手机画面裁剪。

> [!NOTE]
> MAS 连接时会启动自己的 adb 服务器。如果你 PATH 上排在前面的是另一个 adb 版本，两个服务器会互相替换，转发就会丢失。先启动 MAS，再用 MAS 使用的同一个 adb 版本设置转发，或者运行 `adb kill-server` 并重复第 4 步。

无线调试同理：手机配对并通过 `adb connect <phone-ip>:<port>` 连接后，把一个本地端口转发到手机的 adb 端口，然后在 MAS 中添加这个本地端口。

## 用 Python 控制它

SDK 不关心底层是哪种设备。`mas.get_device_info()` 返回名称和屏幕尺寸，`mas.get_screen_size()` 只返回尺寸，每一次点击、滑动和截图都走同样的调用。脚本由 MAS 启动，设备已经绑定好，所以代码里不需要连接任何东西。从 [SDK 概览](/docs/sdk)开始。

## 故障排查

### 端口列表为空

模拟器没有运行、它的设置中 ADB 没开，或者它不是 MAS 扫描的模拟器之一。等模拟器启动完成后点击**刷新**。仍然为空时，用**自定义端口**填入模拟器自身设置中显示的端口。参见 [ADB 故障排查](/docs/adb-troubleshooting)。

### Port is already in use

你的某个组里已有另一台设备占用了这个端口。每个端口只能添加一次。删除旧条目，或改选另一个实例的端口。

### 设备一直停在"连接中"或以"错误"结束

MAS 无法完成 `adb connect`，或者模拟器拒绝了第一条命令。检查端口，确认 ADB 已开启，然后按照 [ADB 故障排查](/docs/adb-troubleshooting)处理。
