🔍 USB设备 vs 无线设备(ADB中的本质区别)
| 对比项 | USB连接设备 | 无线连接设备(TCP/IP) |
|---|---|---|
显示在 adb devices 中的标识 | 硬件序列号(如 f3ec0fc48fafc16f) | IP:端口(如 192.168.1.100:5555) |
| 连接方式 | 插上USB线,ADB自动识别(需驱动) | 必须先用 adb tcpip 5555 开启端口,再用 adb connect IP:PORT 手动连接 |
| 连接命令 | 无需 adb connect,直接识别 | 必须 adb connect,是无线特有的 |
| 断开方式 | 拔掉USB线 | adb disconnect IP:PORT 或 adb disconnect |
| 传输稳定性 | 高速、稳定 | 受Wi-Fi影响,可能延迟 |
| 适用场景 | 刷机、传大文件、底层调试 | 摆脱线缆,适合屏幕投影或日常调试 |
📌 单设备 vs 多设备(命令用法的唯一区别)
无论设备是USB还是无线,ADB命令本身完全一样,区别仅在于:
- 只有一个设备时:直接敲
adb shell、adb push、adb pull,无需额外参数。 - 有多个设备时:所有命令都必须加
-s指定设备标识(标识就是adb devices显示的那一串)。
也就是说:
- 单设备:
adb push <本地> <远程> - 多设备:
adb -s <设备标识> push <本地> <远程>(标识可以是序列号或IP:端口)
同样的,adb pull、adb shell 等也是如此。
⚠️ 容易混淆的关键点(你的总结里没错,但我要强调)
adb connect只用于无线设备,不能用于USB设备(更不能接USB序列号)。adb push是推送(电脑→设备),adb pull是拉取(设备→电脑),两者在多设备时都需要加-s,你文件中的示例只给了单设备,但实际多设备时用法一样,只是多了-s。- 无线连接后,所有ADB命令和USB设备完全通用,只是设备标识变了(IP:端口),所以多设备时
adb -s 192.168.1.100:5555 push ...完全可行。