跳转到内容

Scrcpy 连接方式

如果只连接了一个设备(即 adb devices 只列出一个),则会自动选择该设备。

如果连接了多个设备,则需要通过以下 4 种方式之一指定要使用的设备:

  • 按序列号:
    Terminal window
    scrcpy --serial=0123456789abcdef
    scrcpy -s 0123456789abcdef # short version
    # 若通过 TCP/IP 连接,序列号即为 ip:port(与 adb 一致)
    scrcpy --serial=192.168.1.1:5555
  • 选择通过 USB 连接的设备(若仅有一个):
    Terminal window
    scrcpy --select-usb
    scrcpy -d # short version
  • 选择通过 TCP/IP 连接的设备(若仅有一个):
    Terminal window
    scrcpy --select-tcpip
    scrcpy -e # short version
  • 选择已在 TCP/IP 上监听的设备(见下文):
    Terminal window
    scrcpy --tcpip=192.168.1.1:5555
    scrcpy --tcpip=192.168.1.1 # default port is 5555

也可以通过环境变量 ANDROID_SERIALadb 同样支持)提供序列号:

Terminal window
# in bash
export ANDROID_SERIAL=0123456789abcdef
scrcpy
Terminal window
:: in cmd
set ANDROID_SERIAL=0123456789abcdef
scrcpy
Terminal window
# in PowerShell
$env:ANDROID_SERIAL = '0123456789abcdef'
scrcpy

scrcpy 通过 adb 与设备通信,而 adb 可以通过 TCP/IP [连接]设备。设备必须与电脑处于同一网络。

--tcpip 选项可自动配置连接方式,分为两种用法。

如果设备未启用 adb 的 TCP/IP 模式(或你不知道设备 IP 地址),请先通过 USB 连接设备,然后运行:

Terminal window
scrcpy --tcpip # without arguments

它会自动查找设备 IP 地址与 adb 端口,必要时启用 TCP/IP 模式,并在启动前连接到设备。

如果设备(示例为 192.168.1.1)已在某端口(通常 5555)监听 adb 连接,则直接运行:

Terminal window
scrcpy --tcpip=192.168.1.1 # default port is 5555
scrcpy --tcpip=192.168.1.1:5555

在地址前加上 + 可强制重新连接:

Terminal window
scrcpy --tcpip=+192.168.1.1

也可使用 adb 手动启用 TCP/IP 连接:

  1. 通过 USB 将设备连接到电脑。

  2. 将设备连接到与电脑相同的 Wi‑Fi 网络。

  3. 在“设置 → 关于手机 → 状态”中查看设备 IP,或执行以下命令:

    Terminal window
    adb shell ip route | awk '{print $9}'
  4. 在设备上启用 TCP/IP:adb tcpip 5555

  5. 拔掉设备 USB 连接。

  6. 连接到设备:adb connect DEVICE_IP:5555(将 DEVICE_IP 替换为上一步获得的 IP)。

  7. 像平常一样运行 scrcpy

  8. 完成后运行 adb disconnect 断开连接。

自 Android 11 起,提供了无线调试选项,可避免将设备物理连接到电脑。

一个小工具(由 scrcpy 作者编写)允许在连接到新的 Android 设备时执行任意命令:AutoAdb。可以用它来启动 scrcpy:

Terminal window
autoadb scrcpy -s '{}'