ADB 是什么?一文看懂安卓调试桥 Android Debug Bridge
ADB(Android Debug Bridge,安卓调试桥)让电脑可以和安卓设备通信。了解它的三个组成部分、连接如何授权、USB 与 Wi-Fi 连接,以及它和 fastboot 的区别。
ADB 是 Android Debug Bridge(安卓调试桥)的缩写,是电脑与安卓手机、平板或电视通信的工具。用它可以在电脑上安装应用、查看日志、复制文件、运行 shell 命令和控制屏幕。Google 把它随 Android SDK 一起发布,Android Studio 每次点击 Run 时,背后用的也是这个工具。
一座由三部分组成的桥
ADB 看起来只是一条命令,实际上是三个程序协同工作:
| 组成部分 | 运行位置 | 作用 |
|---|---|---|
| 客户端 (Client) | 你的电脑 | 你输入的 adb 命令。它把请求发送给服务端。 |
| 服务端 (Server) | 你的电脑,在后台运行 | 记录已连接的设备,在客户端和设备之间转发消息。监听 5037 端口。 |
守护进程(adbd) | 安卓设备 | 接收命令并在设备上执行。 |
第一次输入 adb 命令时,如果服务端还没运行,客户端会先启动它。然后服务端会在 USB 和网络上查找设备。运行 adb shell ls 时,客户端把请求交给服务端,服务端转发给设备上的 adbd,输出再沿原路返回。
所以同一时间只应该有一个程序运行 ADB 服务端。如果 Android Studio、scrcpy 和终端都想占用 USB 连接,它们就会互相争抢,你会看到「device busy」之类的报错。解决办法通常是运行 adb kill-server 或关闭其他工具。详见 设备被占用或未授权的解决方法。
设备如何允许电脑接入
ADB 的权限很大,所以 Android 不会让任意电脑使用它。
- 必须打开 USB 调试。 它在开发者选项里,而开发者选项默认是隐藏的,需要连续点击版本号七次才会出现(小米/红米/POCO 点 MIUI 版本或 OS 版本)。见 如何打开 USB 调试。
- 设备必须授权这台电脑。 每台电脑都有自己的 RSA 密钥。第一次连接时,手机会弹出「允许 USB 调试吗?」(Allow USB debugging?),并显示该密钥的指纹。点击允许之前,设备会显示为
unauthorized,什么都做不了。
你可以随时在开发者选项中点击 撤销 USB 调试授权 (Revoke USB debugging authorizations) 收回授权。
USB 还是 Wi-Fi
ADB 支持两种连接方式:
- USB 数据线: 默认方式。速度快、稳定,设置起来最简单。
- 网络: 一种是经典的
adb tcpip,需要先插一次线把手机切换到 5555 端口。另一种是 Android 11 及以上的 无线调试,用配对码配对,完全不需要线。两者的区别见 adb tcpip 与无线调试的区别。
大多数电视无法通过 USB 连接电脑,网络 ADB 是唯一的选择。见 如何用 ADB 控制 Android TV。
ADB 和 fastboot 的区别
两者经常被混淆,因为它们在同一个下载包 Android SDK platform-tools 里。
| ADB | Fastboot | |
|---|---|---|
| 何时可用 | Android(或 recovery)正在运行时 | 手机处于 bootloader / fastboot 模式,Android 启动之前 |
| 用途 | 应用、日志、文件、shell、屏幕 | 刷写分区、解锁 bootloader |
| 设备端 | adbd | bootloader |
adb reboot bootloader 是两者之间常用的桥梁:它让正在运行的手机进入 fastboot 模式。进入之后能做什么,请看 fastboot 模式指南。
如何获取 ADB
常见的方式有两种:
- Android SDK platform-tools: Google 免费提供,支持 Windows、macOS 和 Linux。解压后把文件夹加入 PATH,就能在终端中使用
adb。 - 在浏览器中使用: Chrome 和 Edge 可以通过 WebUSB 访问 USB 设备,所以网页可以直接使用 ADB 协议。ADBKit 就是这样工作的,USB 连接无需安装任何东西。技术细节见 WebADB 和 WebUSB 是什么。
ADB 安全吗?
ADB 是调试工具,所以它会给已授权的电脑很深的访问权限:可以安装应用、读取应用日志、从共享存储中复制文件。只要电脑是你自己的,并且你清楚自己在运行什么,就是安全的。养成几个好习惯:
- 只对信任的电脑点击允许。
- 不再需要时关闭 USB 调试,尤其是日常随身使用的手机。
- 不要在公共或共享的 Wi-Fi 中开着网络 ADB。