4. 启动与停止ADB服务

任务说明

当Android设备在adb devices中显示为offline或unauthorized状态时,通常需要重启ADB服务来重新建立主机与设备之间的通信通道。本案例通过adb kill-server停止服务,再用adb start-server启动服务,完成一次干净的ADB服务重启。

环境准备

  • 已安装Android SDK Platform-Tools(包含adb可执行文件)
  • 设备已通过USB连接,并开启开发者选项与USB调试
  • 终端或命令行窗口可访问adb命令

操作步骤与代码

以下命令在终端中依次执行。核心操作只有两条命令,但需要配合状态检查来确认重启是否生效:

# 1. 查看当前设备连接状态(确认问题存在)
adb devices

# 2. 停止ADB服务
adb kill-server

# 3. 重新启动ADB服务
adb start-server

# 4. 再次查看设备状态,确认设备已恢复为device状态
adb devices

如果adb start-server命令执行后没有任何输出,说明服务已在后台启动成功。若需要确认服务进程确实在运行,可以执行:

# Windows
tasklist | findstr adb

# macOS / Linux
ps aux | grep adb

验证方法与通过条件

按以下顺序检查,全部满足即判定操作成功:

  1. 执行adb kill-server后,再执行adb devices,输出中不应再列出任何设备(服务已停止,无法枚举设备)。
  2. 执行adb start-server后,命令正常返回且无错误信息。
  3. 最终执行adb devices时,目标设备的状态列显示为device,而不是offline或unauthorized。
  4. 如果设备之前处于unauthorized状态,重启服务后设备端可能弹出USB调试授权对话框,需要在设备上点击“允许”。

常见问题

  • kill-server后设备仍显示offline:可能是USB连接不稳定,尝试重新插拔USB线,或更换USB端口。
  • start-server提示端口被占用:执行adb nodaemon server查看具体错误,通常需要结束占用5037端口的进程后重试。
  • 设备重启后仍为offline:在设备上关闭并重新开启USB调试,或执行adb usb命令切换为USB连接模式。