搜索

设备

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

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

  • Windows
  • Mac
  • 模拟器
  • 云手机
  • 手机
  • Studio
  • Python SDK
入门 更新于 阅读约 7 分钟
本页目录
  1. 开始之前
  2. MAS 如何找到模拟器的 adb 端口
  3. 把安卓模拟器添加为自动化设备
  4. 云设备
  5. 你自己的手机
  6. 用 Python 控制它
  7. 故障排查
  8. 端口列表为空
  9. Port is already in use
  10. 设备一直停在”连接中”或以”错误”结束

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

开始之前

  • 已安装 MAS 并用有效的试用或套餐登录。参见安装 MAS。试用期内 MAS 可免费下载;从下载页获取。
  • 模拟器:模拟器正在运行,并且已在其设置中打开 ADB。BlueStacksLDPlayerMuMu PlayerMEmu 指南会说明位置。
  • 云设备:带有云设备附加项的套餐。参见云设备

MAS 如何找到模拟器的 adb 端口

MAS 不通过运行 adb devices 来找模拟器。它扫描运行中的进程,寻找已知的模拟器名称,读取每个进程监听的 TCP 端口,只保留落在该模拟器已知范围内的端口。只有绑定到 127.0.0.10.0.0.0 或所有网卡的端口才算数。结果填入添加新设备对话框的端口列表,每个端口一项,旁边标着模拟器名称。

模拟器MAS 查找的进程名MAS 接受的端口
BlueStacksHD-PlayerBlueStacks5555 到 8500
LDPlayerLdVBoxHeadlessLd9BoxHeadlessdnplayerLDPlayerVBoxNetNAT5555 到 5599 之间的奇数端口
NoxNoxVMHandle62001 到 63000
MEmuMEmuHeadlessMEmuHyper21503 及其之上、30000 以下所有以 3 结尾的端口
MuMu PlayerNemuHeadlessMuMu5555 到 5599 之间的奇数端口、7555、16384 到 16576,或 26624 到 27264

每个模拟器实例监听自己的端口,所以两个 BlueStacks 窗口会显示为两项。如果你的模拟器不在表中,或者它监听的端口在范围之外,你仍然可以手动输入端口。

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

  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”。之后要改端口,点击编辑设备

同一个组里的多台设备可以使用不同的宏、参数和设置方案,全部启动会依次运行它们。参见设备组

云设备

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

你自己的手机

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 中从手机画面裁剪。

无线调试同理:手机配对并通过 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 提问