2、ADB基础命令:adb devices、adb version、adb help、adb kill-server、adb start-server
好,咱们正式开始动手了。
这一节我带你认识几个最基础的ADB命令。说白了,它们就是ADB世界的「开门五件事」。你以后每天都会跟它们打交道,就像吃饭喝水一样自然。
我个人习惯,每次搭建新环境或者遇到设备连不上的时候,都会先跑一遍这几个命令。它们能帮你快速定位问题,心里有底。
2.1 adb version —— 看看你手里拿的是哪把刀
先问个问题:你怎么知道自己电脑上装的ADB是什么版本?
很简单,打开终端(Windows是CMD或PowerShell,Mac/Linux是Terminal),直接敲:
adb version
回车之后,你会看到类似这样的输出:
Android Debug Bridge version 1.0.41
Version 33.0.3-8952118
Installed as /usr/local/bin/adb
这三行信息分别告诉你:
- ADB的大版本号:1.0.41 是目前比较通用的版本
- 具体构建版本:33.0.3 对应的是Android SDK Platform-Tools的版本号
- 安装路径:告诉你ADB这个程序实际放在哪里
adb version 可以确认当前终端调用的是哪一个。我曾经遇到过因为PATH环境变量顺序不对,调用了旧版ADB导致连不上Android 13设备的情况,查了半天才发现是版本太老。
2.2 adb devices —— 看看谁在线
这个命令,可以说是ADB里最常用的,没有之一。
adb devices
输出结果长这样:
List of devices attached
emulator-5554 device
0123456789ABCDEF device
它列出了当前所有连接到电脑的Android设备。每一行代表一个设备,格式是:
设备序列号 + 状态
状态有三种可能:
| 状态 | 含义 | 说明 |
|---|---|---|
| device | 正常连接 | 设备已授权,可以正常通信 |
| offline | 离线 | 设备连接了,但ADB无法与之通信,通常需要重新插拔或重启ADB |
| unauthorized | 未授权 | 设备弹出了「允许USB调试」的对话框,你还没点「确定」 |
unauthorized,别慌。看看手机屏幕,通常会有一个「允许USB调试吗?」的弹窗。点「确定」并勾选「始终允许」,再重新跑一遍 adb devices 就好了。我曾经在培训时见过有人卡在这一步半小时,其实就差一个点击。
另外,如果你只连了一台设备,大部分ADB命令可以直接用。但如果连了多台,就需要指定设备了。这个我们后面会细讲。
2.3 adb help —— 你的随身手册
记不住命令参数怎么办?
别硬背。ADB自带了一个非常详细的帮助文档。
adb help
或者简写:
adb --help
执行之后,终端会输出一长串内容,包含了所有ADB命令的列表和简要说明。你想想看,这比去网上搜快多了吧?
我个人习惯,遇到不确定的选项,先跑一下 adb help 扫一眼。比如我想知道怎么往设备里传文件,直接搜「push」关键词就行。
adb help | findstr "push" 来过滤输出。在Mac/Linux下则是 adb help | grep "push"。这样只显示包含「push」的行,省得看一大堆不相关的。
2.4 adb kill-server 和 adb start-server —— 重启大法好
这两个命令,我建议你当成一对组合来记。
ADB在后台运行着一个服务端进程(叫 adb server),它负责跟所有连接的设备通信。有时候这个服务会卡住、崩溃、或者端口被占用,这时候就需要重启它。
先杀掉服务:
adb kill-server
这个命令执行后,不会有任何输出。它只是默默地杀掉后台的ADB进程。你可以用任务管理器(Windows)或 ps aux | grep adb(Mac/Linux)来确认它已经不在了。
然后再启动服务:
adb start-server
执行后,你会看到:
* daemon not running; starting now at tcp:5037
* daemon started successfully
嗯,这里要注意:adb start-server 其实很少需要手动执行。因为当你运行任何其他ADB命令(比如 adb devices)时,如果发现服务没启动,它会自动帮你启动。所以大多数情况下,你只需要 adb kill-server 然后随便敲个 adb devices 就行了。
- 设备状态一直显示
offline,怎么都连不上 - 换了USB线或USB口之后,设备识别不到
- 电脑休眠唤醒后,ADB突然不工作了
- 端口5037被其他程序占用了(比如某些模拟器)
我曾经在调试一个车载Android系统时,遇到设备频繁断连。折腾了半天,最后发现是USB线质量太差,导致ADB服务端不断崩溃。换了一根线,再 adb kill-server 重新连,问题就解决了。你看,有时候问题不在命令本身,而在物理连接上。
小结一下
这五个命令,你记住了吗?
adb version—— 查版本,确认环境adb devices—— 查设备,确认连接adb help—— 查手册,随时翻阅adb kill-server—— 杀服务,重启大法adb start-server—— 启服务,自动完成
说白了,这五个命令就是ADB的「体检套餐」。每次开始工作前跑一遍,能帮你排除掉80%的常见问题。下一节,咱们开始真正跟设备交互,安装和卸载App。