Linux 环境下 ADB 命令详解:adb devices 的核心应用与技巧
在 Android 开发与设备调试中,Android Debug Bridge(ADB)作为 Google 提供的 versatile 命令行工具,是连接计算机与 Android 设备的核心桥梁。adb devices 命令是 ADB 工具集的基础,用于检测已连接的设备并管理调试会话,本文将围绕 adb devices 命令展开,详细解析其功能、输出含义、常见问题及扩展应用,帮助开发者高效利用 ADB 进行设备调试。

adb devices 命令的核心功能
adb devices 命令的主要作用是列出当前通过 USB 或网络连接到计算机的 Android 设备,并显示设备的序列号、连接状态及调试授权情况,其基本语法为:
adb devices [options]
执行该命令后,ADB 会启动一个设备监控进程,扫描已连接的设备,并返回设备列表及状态信息,这一步骤是后续所有 ADB 操作(如安装应用、推送文件、日志抓取等)的前提,只有设备被正确识别,才能通过 ADB 进行进一步控制。
命令输出解析:设备状态与授权机制
执行 adb devices 后,终端会输出两行关键信息:首行为 List of devices attached,下方为具体设备列表,每台设备的信息包含两列:设备序列号(如 emulator-5554)和设备状态(如 device、unauthorized 等),以下是常见状态的详细说明:
device:设备已连接并授权,允许 ADB 调试,此时可通过 ADB 执行所有操作,如adb install、adb shell等。unauthorized:设备已连接,但未授权计算机进行调试,通常出现在首次连接设备或开启 USB 调试后,需在设备屏幕上弹出的授权对话框中点击“允许”,并确认计算机的 RSA 指纹。offline:设备已连接,但无响应或未响应 ADB 调试请求,可能因设备驱动问题、ADB 服务异常或设备崩溃导致,需重启设备或 ADB 服务(adb kill-server && adb start-server)。no permissions:计算机未获取设备的 USB 调试权限,常见于 Linux 系统中未正确配置 udev 规则,导致无法识别设备(需通过sudo apt-get install android-tools-adb安装 ADB 并配置设备权限)。
输出示例:
List of devices attached
emulator-5554 device
192.168.1.100:5555 unauthorized
表示模拟器 emulator-5554 已授权可调试,而网络设备 168.1.100:5555 需在设备端授权。
Linux 环境下的设备连接与权限配置
在 Linux 系统中,adb devices 命令可能因权限问题无法识别设备,以下是常见解决步骤:

-
安装 ADB 工具
若系统中未安装 ADB,可通过包管理器安装:sudo apt update && sudo apt install android-tools-adb
-
配置 udev 规则解决权限问题
Linux 系统默认禁止普通用户访问 USB 设备,需创建 udev 规则以赋予 ADB 权限,执行以下命令创建规则文件:sudo nano /etc/udev/rules.d/51-android.rules
添加以下内容(根据设备厂商 ID 修改,可通过
lsusb查看设备 ID):SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"保存后,重新加载 udev 规则并重启 ADB 服务:
sudo udevadm control --reload-rules && sudo udevadm trigger adb kill-server && adb start-server
-
网络连接(可选)
若需通过 Wi-Fi 调试设备,确保设备与计算机在同一局域网,执行以下命令:adb tcpip 5555 # 启用 TCP 模式 adb connect 192.168.1.100:5555 # 连接设备 IP
断开网络连接可使用
adb disconnect。
adb devices 的高级应用与故障排查
-
过滤特定设备
当多台设备同时连接时,可通过-l参数显示设备详细信息(如设备型号、序列号),或直接指定序列号操作:adb devices -l # 显示设备详情 adb -s emulator-5554 shell # 对指定设备执行 shell 命令
-
设备状态监控
结合watch命令可实时监控设备连接状态变化:watch -n 1 "adb devices"
-
常见故障排查
- 设备无响应(
offline):尝试重启设备、更换 USB 线缆,或执行adb kill-server && adb start-server重启 ADB 服务。 - 设备未识别(
no permissions):检查 udev 规则是否正确,或尝试以sudo权限运行 ADB(不推荐,长期使用需配置权限)。 - 授权后仍显示
unauthorized:尝试在设备端取消授权并重新授权,或清除设备 ADB 缓存(settings global adb_enabled 0 && settings global adb_enabled 1)。
- 设备无响应(
adb devices 命令作为 ADB 工具的“入口”,其正确使用是 Android 开发与调试的基础,通过理解设备状态的含义、掌握 Linux 环境下的权限配置,并结合高级命令灵活操作,开发者可高效解决设备连接问题,为后续的调试、测试工作奠定基础,在实际应用中,建议结合 adb logcat、adb shell 等命令形成完整的调试流程,以充分发挥 ADB 工具的强大功能。

















