设备
雷电模拟器 ADB 端口与调试连接设置(LDPlayer)
在 LDPlayer 9 中开启 ADB 调试,找到雷电模拟器 ADB 端口,把实例连接到 Macro Automation Studio,并用会看屏幕的宏替代操作录制。
- Windows
- 模拟器
- Studio
- Python SDK
本页目录
这篇指南介绍如何通过 ADB 把 LDPlayer 9(雷电模拟器)连接到 Macro Automation Studio(MAS),找到雷电模拟器 ADB 端口,以及 MAS 宏与 LDPlayer 的操作录制有什么不同。LDPlayer 只有 Windows 版本,所以下面的每一步都是 Windows 上的步骤。
开始之前
- 已在 Windows 10 或 11 上安装并登录 MAS。试用期内 MAS 可免费下载;从下载页获取。
- 已从 ldplayer.net 安装 LDPlayer 9 并至少启动过一次。
- 实例已完全启动到安卓主屏幕。
- 要自动化的应用已在 LDPlayer 中安装并登录。
1. 安装 LDPlayer 9
- 从官方网站下载 LDPlayer 9 并运行安装包。
- 启动 LDPlayer,等待主屏幕出现。
- 在把设备添加到 MAS 之前,先安装并登录要自动化的应用。
2. 设定固定分辨率
MAS 逐像素匹配模板图片,所以分辨率选定一次就不要再改。
- 点击 LDPlayer 工具栏的齿轮图标打开设置。
- 打开显示,选择自定义分辨率选项。
- 输入宽 540、高 960、DPI 240。这是 MAS 基准;你自己写的宏预期的是你在 Asset Lab 中截取时的分辨率。
- 点击保存设置,LDPlayer 要求时重启实例。
3. 在 LDPlayer 9 中开启 ADB 调试
LDPlayer 的 ADB 默认关闭,需要你手动打开。官方文档把这个开关放在其他设置里:
- 打开设置。
- 点击其他设置。
- 把 ADB 调试设为开启本地连接。
- 点击保存设置。
- 重启实例。设置在重启后生效。
4. 雷电模拟器 ADB 端口与 MAS 的扫描方式
第一个 LDPlayer 实例监听 5555。MAS 不用 adb devices 来发现模拟器。它扫描运行中的进程,只有满足以下全部条件时才保留端口:
- 进程名包含
ldvboxheadless、ld9boxheadless、dnplayer、ldplayer或vboxnetnat。 - 端口是 5555 到 5599 之间的奇数:5555、5557、5559 等等。
- 套接字监听在
127.0.0.1、0.0.0.0或所有网卡上。
匹配的端口会出现在添加新设备对话框中,标注为 LD Player,例如 5555 - LD Player。MAS 在你打开设备组时以及每次点击刷新时扫描。后续实例依次使用下一个奇数端口,这就是规则一直到 5599 的原因:它覆盖 23 个运行中的实例。
5. 在 MAS 中通过 ADB 连接 LDPlayer
- 在侧边栏打开设备组,打开一个组,或新建一个。
- 点击添加设备。
- 输入不超过 50 个字符的设备名称。
- 在端口中选择这个实例对应的
LD Player项。列表为空时点击刷新。 - 如果 LDPlayer 使用的端口不符合上面的规则,选择自定义端口并输入。MAS 接受 1024 到 65535。
- 可选:选择一个启动宏。
- 点击添加设备,然后在设备卡片上点击启动。
卡片会显示连接中,然后是运行中。MAS 启动自己的 adb 服务器,移除 127.0.0.1:<port> 的任何过期条目,然后对它运行 adb connect。
LDPlayer 上的宏
LDPlayer 的操作录制(工具栏按钮,或 Ctrl + 8)记录点击、滑动和文字输入,并把它们当作脚本重放。它的脚本设置提供循环执行(按次数循环、按时间循环或直到手动停止)、循环间隔和加速。它做不到的是看屏幕。每一次点击都在你录制时的坐标重放,所以加载延迟、弹窗或移动了的按钮都会让下一次点击落空,而循环照旧继续。脚本也只能在 LDPlayer 内部运行。
MAS 宏是一段在行动前先检查屏幕的 Python 脚本。它用模板匹配找到按钮,用 OCR 读取文字,用重试等待,并根据看到的内容分支。同一段脚本无需修改就能在 LDPlayer、其他模拟器和云设备上运行,因为 MAS 通过 adb 驱动设备。
- 要把录制的流程重建为会看屏幕的宏,按照图像识别宏操作。
- 要让它循环到满足某个条件为止(录制器表达不了的停止条件),或者按计划运行,阅读循环、停止条件与定时。
- Marketplace 宏安装后就是 MAS 宏,在你指定的设备上运行。
多个 LDPlayer 实例
在雷电多开器(多开工具栏按钮,然后新建模拟器或复制模拟器)中创建的每个实例都监听自己的端口。把每个实例作为单独的设备添加到同一个设备组,按设备指定宏和设置方案,然后在组上使用全部启动和全部停止。在多开器的设置中按实例设定分辨率,让模板在所有实例上都能匹配。按设备设置参数和代理,参见设备组。
故障排查
雷电模拟器 ADB 找不到设备
设备卡片显示错误并提示 “Failed to start device”,日志写着 “unable to connect to device”,或者 MAS 没有列出任何 LD Player 项。逐条排查这些原因:
- ADB 调试没有设为开启本地连接,或者改动后没有重启实例。设置、保存,然后重启。
- 实例还在启动。等主屏幕出现后再点击刷新和启动。
- 端口属于另一个实例。在卡片上用编辑设备修正。
- 扫描报告 “Failed to scan emulator ports”。重启 MAS 并重新打开对话框。
- 设备日志里 adb 输出了 “connection refused” 或 “cannot connect”。这个端口上没有任何东西在监听;在终端运行
adb connect 127.0.0.1:5555检查。
雷电模拟器显示 offline
adb devices 列出 127.0.0.1:<port> offline,命令卡住。实例内的 adb 守护进程停止响应了,通常发生在休眠、更新或机器上出现第二个 adb 服务器之后。在卡片上点击停止,重启 LDPlayer 实例,关闭其他运行自带 adb 服务器的工具,然后点击启动。MAS 每次启动都会断开过期条目并重新连接。仍然离线时,重启 MAS 让它的 adb 服务器干净地启动。更多修复方法见 ADB 故障排查。
查找雷电模拟器 9 的 ADB 端口
官方 ADB 指南没有指出 LDPlayer 设置中哪里会显示端口,所以请从 MAS 或 adb 读取。在 MAS 中打开添加新设备并点击刷新:它找到的每个端口都会列出来,旁边标着 LD Player,从小到大排列,所以第一个实例是 5555,后面的依次是 5557 和 5559。在终端中,adb connect 127.0.0.1:5555 对活动端口返回 “connected”,对无效端口返回 “cannot connect”。知道端口之后,只要你按相同顺序启动实例,它就保持不变。
脚本不会动
两种不同的问题共用这个说法。
- 录制的 LDPlayer 脚本点错位置,或者循环但没有效果。录制后分辨率变了、应用现在加载更慢,或者有弹窗盖住了按钮。录制脚本无法从这些情况中恢复;用图像识别宏把流程重建为 MAS 宏。
- MAS 宏卡住或停止。打开设备卡片上的日志:
ImageNotFoundError和TimeoutError会指出失败的步骤。检查实例是否运行在截取模板时的分辨率、设备卡片是否处于运行中、是否有 LDPlayer 脚本在同时发送输入。
用 Python 控制它
卡片处于运行中时,宏的 src/app.py 通过 mas 包驱动实例。端口由 MAS 选择,所以脚本从不引用它。
import mas
size = mas.get_screen_size()
mas.log(f"LDPlayer 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 提问