2、设备连接与管理:USB 连接与调试模式、无线连接(Wi-Fi)、断开连接、查看已连接设备列表

做 Android 开发,第一件事就是让电脑和手机「对上话」。说白了,就是建立 ADB 连接。这一步搞不定,后面所有调试都白搭。我见过不少新手,代码写得挺好,结果卡在设备连不上,急得团团转。今天咱们就把这几种连接方式彻底捋清楚。

核心要点:ADB 连接的本质是建立一条电脑与 Android 设备之间的通信通道。USB 连接是基础,无线连接是进阶,断开连接是收尾。掌握这三板斧,设备管理就稳了。

ADB 设备连接与管理知识体系 ADB 设备连接 USB 连接 + 调试模式 开启开发者选项 → USB 调试 无线连接 (Wi-Fi) adb tcpip 5555 → adb connect 断开连接 adb disconnect / 拔线 查看已连接设备:adb devices

2.1 USB 连接与调试模式

USB 连接是最直接的方式。但光插线没用,你得先让手机「信任」这台电脑。嗯,这里有个关键步骤——开启开发者选项和 USB 调试。

开启开发者选项:

  1. 打开手机「设置」→「关于手机」
  2. 连续点击「版本号」7 次(有的手机叫「Build Number」)
  3. 返回设置主菜单,你会看到「开发者选项」出现了

小技巧:我习惯在开发者选项里把「不锁定屏幕」也打开,调试时省得老输密码。不过记得调试完关掉,不然手机放兜里容易误触。

开启 USB 调试:

  1. 进入「开发者选项」
  2. 找到「USB 调试」并打开
  3. 用 USB 线连接电脑
  4. 手机上会弹出「允许 USB 调试吗?」的对话框,勾选「始终允许」,点确定

警告:千万不要在公共电脑上勾选「始终允许」。我曾经在展会上吃过亏,有人借我电脑调试,结果忘了取消授权,后来那台设备被远程装了东西。安全无小事。

连接成功后,在电脑终端输入:

adb devices

你会看到类似这样的输出:

List of devices attached
0123456789ABCDEF    device

看到 device 字样,说明连接成功了。如果显示 unauthorized,说明手机没授权,去手机上点允许就行。

2.2 无线连接(Wi-Fi)

说实话,我后来基本不用 USB 线了。线缆束缚不说,插拔多了充电口还容易松。无线连接才是真香。

前提条件:

  • 手机和电脑必须在同一个 Wi-Fi 网络下
  • 手机必须已经通过 USB 连接过一次(首次需要 USB 授权)

操作步骤:

  1. 先用 USB 连接手机,确保 adb devices 能看到设备
  2. 执行:adb tcpip 5555(让手机在 5555 端口监听)
  3. 拔掉 USB 线
  4. 查看手机 IP 地址(设置 → 关于手机 → 状态信息)
  5. 执行: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 看看状态,八成问题都能定位到。

公众号:蓝海资料掘金营,微信deep3321