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
验证方法与通过条件
按以下顺序检查,全部满足即判定操作成功:
- 执行
adb kill-server后,再执行adb devices,输出中不应再列出任何设备(服务已停止,无法枚举设备)。 - 执行
adb start-server后,命令正常返回且无错误信息。 - 最终执行
adb devices时,目标设备的状态列显示为device,而不是offline或unauthorized。 - 如果设备之前处于
unauthorized状态,重启服务后设备端可能弹出USB调试授权对话框,需要在设备上点击“允许”。
常见问题
- kill-server后设备仍显示offline:可能是USB连接不稳定,尝试重新插拔USB线,或更换USB端口。
- start-server提示端口被占用:执行
adb nodaemon server查看具体错误,通常需要结束占用5037端口的进程后重试。 - 设备重启后仍为offline:在设备上关闭并重新开启USB调试,或执行
adb usb命令切换为USB连接模式。