2、设备连接与管理:USB 连接与调试模式、无线连接(Wi-Fi)、断开连接、查看已连接设备列表
做 Android 开发,第一件事就是让电脑和手机「对上话」。说白了,就是建立 ADB 连接。这一步搞不定,后面所有调试都白搭。我见过不少新手,代码写得挺好,结果卡在设备连不上,急得团团转。今天咱们就把这几种连接方式彻底捋清楚。
核心要点:ADB 连接的本质是建立一条电脑与 Android 设备之间的通信通道。USB 连接是基础,无线连接是进阶,断开连接是收尾。掌握这三板斧,设备管理就稳了。
2.1 USB 连接与调试模式
USB 连接是最直接的方式。但光插线没用,你得先让手机「信任」这台电脑。嗯,这里有个关键步骤——开启开发者选项和 USB 调试。
开启开发者选项:
- 打开手机「设置」→「关于手机」
- 连续点击「版本号」7 次(有的手机叫「Build Number」)
- 返回设置主菜单,你会看到「开发者选项」出现了
小技巧:我习惯在开发者选项里把「不锁定屏幕」也打开,调试时省得老输密码。不过记得调试完关掉,不然手机放兜里容易误触。
开启 USB 调试:
- 进入「开发者选项」
- 找到「USB 调试」并打开
- 用 USB 线连接电脑
- 手机上会弹出「允许 USB 调试吗?」的对话框,勾选「始终允许」,点确定
警告:千万不要在公共电脑上勾选「始终允许」。我曾经在展会上吃过亏,有人借我电脑调试,结果忘了取消授权,后来那台设备被远程装了东西。安全无小事。
连接成功后,在电脑终端输入:
adb devices
你会看到类似这样的输出:
List of devices attached
0123456789ABCDEF device
看到 device 字样,说明连接成功了。如果显示 unauthorized,说明手机没授权,去手机上点允许就行。
2.2 无线连接(Wi-Fi)
说实话,我后来基本不用 USB 线了。线缆束缚不说,插拔多了充电口还容易松。无线连接才是真香。
前提条件:
- 手机和电脑必须在同一个 Wi-Fi 网络下
- 手机必须已经通过 USB 连接过一次(首次需要 USB 授权)
操作步骤:
- 先用 USB 连接手机,确保
adb devices能看到设备 - 执行:
adb tcpip 5555(让手机在 5555 端口监听) - 拔掉 USB 线
- 查看手机 IP 地址(设置 → 关于手机 → 状态信息)
- 执行:
adb connect 192.168.1.100:5555(IP 换成你手机的)
如果看到:
connected to 192.168.1.100:5555
恭喜,无线连接成功了。你再跑 adb devices 看看,设备列表里会多一个带 IP 地址的设备。
避坑指南:我曾经遇到一个问题——无线连接后过几分钟就断了。排查了半天,发现是公司 Wi-Fi 有 AP 隔离策略。你想想看,两个设备虽然连同一个 Wi-Fi,但互相不能通信。解决办法是换到个人热点或者关掉 AP 隔离。
常见问题:
| 问题 | 原因 | 解决办法 |
|---|---|---|
| 连接超时 | 端口被占用或网络不通 | 换端口(如 5554),或检查防火墙 |
| 连接后立刻断开 | 手机进入休眠 | 在开发者选项里开启「不锁定屏幕」 |
| 显示 offline | 设备未授权或 ADB 版本不匹配 | 重新授权或升级 ADB |
2.3 断开连接
断开连接分两种情况:
1. 断开指定设备:
adb disconnect 192.168.1.100:5555
这个命令只断开无线连接的设备,USB 连接的不会受影响。
2. 断开所有设备:
adb disconnect
不加参数,所有 ADB 连接都会被断开。我一般调试完直接拔线,但无线连接必须用 adb disconnect 来断开,不然下次连可能会有端口冲突。
个人习惯:我每次调试完都会执行一次 adb kill-server,把 ADB 服务彻底停掉。这样下次启动时,它会重新扫描设备,避免一些奇奇怪怪的缓存问题。
2.4 查看已连接设备列表
这个命令咱们前面已经用过好几次了:
adb devices
输出格式很简单:
List of devices attached
emulator-5554 device
0123456789ABCDEF device
192.168.1.100:5555 device
每一行代表一个设备。第一列是设备序列号(USB 连接显示的是硬件序列号,无线连接显示的是 IP:端口,模拟器显示的是 emulator-端口)。第二列是状态:
device:正常连接,可以调试unauthorized:未授权,需要去手机上点允许offline:设备离线,可能断开了或 ADB 服务异常no device:啥都没连上
如果同时连着多个设备,执行命令时需要指定设备:
adb -s 0123456789ABCDEF shell
或者用 -d 指定唯一 USB 设备,-e 指定唯一模拟器。
总结一下:设备连接管理是 ADB 的基石。USB 连接是入门,无线连接是进阶,断开连接是收尾。我个人建议,日常调试用无线,首次配置用 USB。遇到连接问题,先跑 adb devices 看看状态,八成问题都能定位到。