19、无线调试(Wi-Fi ADB):adb tcpip(开启端口)、adb connect(无线连接)、实战:摆脱数据线。
说实话,每次看到同事桌上缠成一团的数据线,我就想起自己刚入行那会儿。有一次调试一个车载设备,线不够长,我整个人趴在副驾驶座上,胳膊举着手机,那姿势别提多狼狈了。从那天起,我就铁了心要把无线调试玩明白。
无线 ADB,说白了就是让手机和电脑通过 Wi-Fi 通信,不再依赖那根 USB 线。你想想看,调试的时候手机可以放在桌上、拿在手里、甚至隔着一堵墙,多自由。
19.1 无线调试的原理
无线 ADB 的核心,其实是把 ADB 服务从 USB 传输切换到 TCP/IP 网络传输。默认情况下,ADB 通过 USB 与设备通信,端口号是固定的。我们只需要在手机上开启一个 TCP 监听端口,然后让电脑连过去就行。
我习惯把整个过程分成三步:
- 手机和电脑连到同一个 Wi-Fi —— 这是基础,不在同一个网段可不行。
- 手机端开启 ADB 网络端口 —— 用
adb tcpip命令。 - 电脑端发起连接 —— 用
adb connect命令。
嗯,这里要注意:无线 ADB 并不是完全替代 USB,它更像是一个「增强模式」。第一次配置时,你还是得先用 USB 线连一次。
核心命令速记
adb tcpip 5555—— 让手机在 5555 端口上监听 ADB 连接adb connect 192.168.1.100:5555—— 电脑连接手机的无线 ADBadb disconnect 192.168.1.100:5555—— 断开无线连接
19.2 第一步:准备工作
在开始之前,先确认几件事:
- 手机和电脑必须连接同一个 Wi-Fi 网络。别问我为什么,跨网段虽然也能搞,但那属于进阶玩法,新手别碰。
- 手机需要开启开发者选项和USB 调试。这个我们在前面章节已经讲过了。
- 电脑上已经装好了 ADB 工具。如果你还没装,赶紧去配一下。
我记得有一次在客户现场,死活连不上无线 ADB,折腾了半小时才发现手机连的是 5G Wi-Fi,电脑连的是 2.4G Wi-Fi。虽然同一个路由器,但两个频段默认是隔离的。从那以后,我每次都会先看一眼手机和电脑的 IP 地址,确认它们在同一个网段。
19.3 第二步:开启无线端口
先用 USB 线把手机连到电脑。打开终端,输入:
adb devices
确认设备已列出。然后执行:
adb tcpip 5555
你会看到类似这样的输出:
restarting in TCP mode port: 5555
这时候,手机上的 ADB 服务已经切换到 TCP 模式了。你可以拔掉 USB 线了。
注意:有些手机在执行 adb tcpip 后会自动断开 USB 连接,这是正常现象。如果没断开,手动拔线也行。
为什么会用 5555 端口?这是 ADB 的默认端口。你也可以改成别的,比如 5556、5557,但没必要。我建议就用默认的,省得记错。
19.4 第三步:无线连接
现在手机已经开启了无线监听。我们需要知道手机的 IP 地址。在手机上打开「设置」→「关于手机」→「状态信息」,找到 IP 地址。或者直接在终端里输入:
adb shell ip addr show wlan0
拿到 IP 后,在电脑上执行:
adb connect 192.168.1.100:5555
把 192.168.1.100 换成你手机的 IP。成功的话,你会看到:
connected to 192.168.1.100:5555
再验证一下:
adb devices
列表里会出现:
List of devices attached
192.168.1.100:5555 device
看到 device 状态,说明连接成功了。现在你可以拔掉数据线,自由调试了。
小技巧:如果连接失败,先试试 adb kill-server 然后 adb start-server 重启 ADB 服务。我遇到过好几次,重启一下就好了。
19.5 实战:摆脱数据线
光说不练假把式。我们来一个完整的实战流程。
场景:你正在开发一个 App,需要反复安装、调试。数据线插拔太麻烦,而且手机充电口已经有点松了。
步骤:
- USB 连接手机,执行
adb tcpip 5555。 - 拔掉 USB 线。
- 获取手机 IP(比如 192.168.1.105)。
- 执行
adb connect 192.168.1.105:5555。 - 现在你可以用
adb install、adb logcat、adb shell等所有命令,完全无线。
我曾经在一个项目里,连续三天用无线 ADB 调试一个蓝牙连接问题。手机放在桌上,我坐在沙发上,一边看日志一边改代码,舒服得很。要是还用数据线,我估计脖子早就废了。
19.6 断开无线连接
调试完了,记得断开连接:
adb disconnect 192.168.1.105:5555
或者直接断开所有无线设备:
adb disconnect
如果你想把手机切回 USB 模式,重新插上 USB 线就行。系统会自动切换回来。
19.7 常见问题与避坑
我曾经踩过的坑:
- 连接超时:检查防火墙。Windows 的防火墙可能会拦截 5555 端口。我建议直接加一条入站规则,允许 ADB 通过。
- 设备离线:手机锁屏后,Wi-Fi 可能会进入休眠。在「开发者选项」里打开「保持唤醒状态」,或者把 Wi-Fi 设置为「始终连接」。
- IP 变了:手机重启后 IP 可能会变。我习惯在路由器里给手机绑定一个静态 IP,省得每次都要查。
- 多设备冲突:如果你同时连了 USB 和无线设备,ADB 可能会混乱。用
adb -s 设备序列号指定目标设备。
19.8 知识体系图
下面这张图帮你理清无线 ADB 的整体流程:
19.9 总结
无线 ADB 不是什么黑科技,它就是一次端口切换加一次网络连接。你只要记住三个命令:adb tcpip、adb connect、adb disconnect,就能彻底告别数据线的束缚。
我个人习惯在办公桌上常备一根短 USB 线,专门用来第一次配置无线 ADB。配置好之后,那根线就收起来了。除非要刷机或者救砖,否则我基本不用线。
嗯,最后提醒一句:无线 ADB 虽然方便,但传输速度不如 USB。如果你要传输大文件(比如几百 MB 的 APK),还是插线吧。日常的 logcat、shell 操作,无线完全够用。
核心命令速查表
| 命令 | 作用 |
|---|---|
adb tcpip 5555 | 开启无线 ADB 端口 |
adb connect IP:5555 | 无线连接设备 |
adb disconnect | 断开所有无线连接 |
adb devices | 查看已连接设备 |