3、基础命令实战(上):adb devices、adb version、adb help、adb kill-server、adb start-server
好,咱们正式开始敲命令了。
这一节的内容,说白了就是 ADB 的「开场五连招」。你刚装上 ADB,总得先确认它活着、能用、连上了设备吧?这五个命令就是干这个的。
我个人习惯,每次开始调试前,都会先跑一遍 adb devices 确认连接状态。别嫌麻烦,这能省掉后面很多莫名其妙的坑。
3.1 adb version —— 看看你的家伙什儿版本
先问一句:你知道自己电脑上的 ADB 是什么版本吗?
很多新手拿到 ADB 就直接开干,结果遇到一些奇奇怪怪的错误,最后发现是版本太旧。我建议你第一步先跑这个命令:
adb version
输出大概长这样:
Android Debug Bridge version 1.0.41
Version 33.0.3-8952118
Installed as /usr/local/bin/adb
这里你会看到三个信息:
- 主版本号:1.0.41 是目前的主流版本
- 构建版本:33.0.3 对应的是 Android SDK 版本
- 安装路径:告诉你 ADB 在哪儿
adb install 失败的情况,折腾了半天才发现是版本问题。
3.2 adb help —— 最好的老师就在手边
说实话,我到现在还会用这个命令。
你记不住所有参数?很正常。我也记不住。但 adb help 能帮你。它会把所有命令和参数列出来,相当于一个内置的速查手册。
adb help
输出内容很长,我挑几个重点区域说说:
| 命令分类 | 说明 |
|---|---|
| global options | 全局参数,比如 -s 指定设备 |
| general commands | 通用命令,像 devices、version 就在这 |
| networking | 网络相关,无线调试什么的 |
| file transfer | 文件传输,push/pull |
adb help 输出乱码,通常是编码问题。在 cmd 里先执行 chcp 65001 切换到 UTF-8 编码就好了。
3.3 adb devices —— 确认你的设备在线
这是整个 ADB 调试里最常用的命令,没有之一。
adb devices
输出示例:
List of devices attached
emulator-5554 device
0123456789ABCDEF device
这里有两列信息:
- 序列号:设备的唯一标识。真机是一串十六进制字符,模拟器是 emulator-xxxx
- 状态:
device表示正常连接,offline表示离线,unauthorized表示未授权
unauthorized,别慌。这是因为手机上的 USB 调试授权弹窗你没点「允许」。拔掉重连,手机上点一下「允许 USB 调试」就行。
我曾经有一次连着五台设备同时调试,全靠 adb devices 确认每台的状态。你想想看,要是没有这个命令,你根本不知道哪台连上了哪台没连上。
3.4 adb kill-server 和 adb start-server —— 重启大法好
这两个命令通常成对出现。说白了就是「重启 ADB 服务」。
什么时候需要重启?
- ADB 突然不认设备了
- 一直显示
offline或unauthorized - 换了 USB 口或者换了电脑
adb kill-server
adb start-server
执行 adb kill-server 后,ADB 服务会停止。然后 adb start-server 会重新启动它。启动时你会看到:
* daemon not running; starting now at tcp:5037
* daemon started successfully
adb devices 一直为空,折腾了半小时。最后执行了一次 adb kill-server 再重启,问题立刻解决。嗯,有时候「重启大法」在 ADB 这里同样管用。
这里有个细节:ADB 服务默认监听 5037 端口。如果你电脑上这个端口被占用了,启动就会失败。可以用 netstat -ano | findstr 5037(Windows)或 lsof -i:5037(Mac/Linux)查一下。
3.5 知识体系总览
下面这张图把这五个命令的关系梳理了一下,你可以对照着看:
这五个命令,就是 ADB 调试的「起手式」。你每次开始工作前,心里默念一遍:版本对不对?设备连没连?服务跑没跑?养成这个习惯,后面会少踩很多坑。
嗯,今天就先到这。把这五个命令敲熟,咱们下一节继续深入。
公众号:蓝海资料掘金营,微信 deep3321