搜索

设备

雷电模拟器 ADB 端口与调试连接设置(LDPlayer)

在 LDPlayer 9 中开启 ADB 调试,找到雷电模拟器 ADB 端口,把实例连接到 Macro Automation Studio,并用会看屏幕的宏替代操作录制。

  • Windows
  • 模拟器
  • Studio
  • Python SDK
入门 更新于 阅读约 8 分钟
本页目录
  1. 开始之前
  2. 1. 安装 LDPlayer 9
  3. 2. 设定固定分辨率
  4. 3. 在 LDPlayer 9 中开启 ADB 调试
  5. 4. 雷电模拟器 ADB 端口与 MAS 的扫描方式
  6. 5. 在 MAS 中通过 ADB 连接 LDPlayer
  7. LDPlayer 上的宏
  8. 多个 LDPlayer 实例
  9. 故障排查
  10. 雷电模拟器 ADB 找不到设备
  11. 雷电模拟器显示 offline
  12. 查找雷电模拟器 9 的 ADB 端口
  13. 脚本不会动
  14. 用 Python 控制它

这篇指南介绍如何通过 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

  1. 从官方网站下载 LDPlayer 9 并运行安装包。
  2. 启动 LDPlayer,等待主屏幕出现。
  3. 在把设备添加到 MAS 之前,先安装并登录要自动化的应用。

2. 设定固定分辨率

MAS 逐像素匹配模板图片,所以分辨率选定一次就不要再改。

  1. 点击 LDPlayer 工具栏的齿轮图标打开设置
  2. 打开显示,选择自定义分辨率选项。
  3. 输入宽 540、高 960、DPI 240。这是 MAS 基准;你自己写的宏预期的是你在 Asset Lab 中截取时的分辨率。
  4. 点击保存设置,LDPlayer 要求时重启实例。

3. 在 LDPlayer 9 中开启 ADB 调试

LDPlayer 的 ADB 默认关闭,需要你手动打开。官方文档把这个开关放在其他设置里:

  1. 打开设置
  2. 点击其他设置
  3. ADB 调试设为开启本地连接
  4. 点击保存设置
  5. 重启实例。设置在重启后生效。

4. 雷电模拟器 ADB 端口与 MAS 的扫描方式

第一个 LDPlayer 实例监听 5555。MAS 不用 adb devices 来发现模拟器。它扫描运行中的进程,只有满足以下全部条件时才保留端口:

  • 进程名包含 ldvboxheadlessld9boxheadlessdnplayerldplayervboxnetnat
  • 端口是 5555 到 5599 之间的奇数:5555、5557、5559 等等。
  • 套接字监听在 127.0.0.10.0.0.0 或所有网卡上。

匹配的端口会出现在添加新设备对话框中,标注为 LD Player,例如 5555 - LD Player。MAS 在你打开设备组时以及每次点击刷新时扫描。后续实例依次使用下一个奇数端口,这就是规则一直到 5599 的原因:它覆盖 23 个运行中的实例。

5. 在 MAS 中通过 ADB 连接 LDPlayer

  1. 在侧边栏打开设备组,打开一个组,或新建一个。
  2. 点击添加设备
  3. 输入不超过 50 个字符的设备名称
  4. 端口中选择这个实例对应的 LD Player 项。列表为空时点击刷新
  5. 如果 LDPlayer 使用的端口不符合上面的规则,选择自定义端口并输入。MAS 接受 1024 到 65535。
  6. 可选:选择一个启动宏
  7. 点击添加设备,然后在设备卡片上点击启动

卡片会显示连接中,然后是运行中。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 宏卡住或停止。打开设备卡片上的日志ImageNotFoundErrorTimeoutError 会指出失败的步骤。检查实例是否运行在截取模板时的分辨率、设备卡片是否处于运行中、是否有 LDPlayer 脚本在同时发送输入。

用 Python 控制它

卡片处于运行中时,宏的 src/app.py 通过 mas 包驱动实例。端口由 MAS 选择,所以脚本从不引用它。

python
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 提问