如果你平时会折腾 Android 手机、平板、电视盒子,ADB 基本就是绕不过去的一套工具。
它最实用的地方在于:
- 连上设备后直接开 shell
- 安装 APK
- 抓日志
- 在电脑和设备之间互传文件
- 用 USB 或 Wi-Fi 调试设备
这篇文章我按一条比较稳的入门主线来写:
- 安装
platform-tools - 手机开启开发者选项和 USB 调试
- 首次用 USB 连上 ADB
- 学会最常用的几条命令
- 学会停用或卸载系统应用
- 顺手配好无线 ADB
文中的命令我都按 Android 官方文档核过,尽量避免那种“旧教程还能看、但细节已经过时”的写法。
适用场景
这篇教程更适合下面这些情况:
- 你第一次接触 ADB
- 你想在电脑上管理 Android 设备
- 你需要装 APK、抓日志、传文件或进 shell
- 你想顺手学会 USB 调试和无线调试
如果你后面要继续折腾 fastboot、解锁 bootloader、刷机、抓包或者自动化脚本,这篇可以先当第一步。
第一步:安装 platform-tools
adb 不需要你把整个 Android Studio 都装上。
官方最直接的做法,就是安装 Android SDK Platform-Tools。
如果你已经装了 Android Studio,也可以直接用 SDK Manager 里那份。
如果你只是想单独用 ADB,直接下载官方的 standalone platform-tools 压缩包会更轻。
下载并解压之后,先在对应目录里执行:
adb version
如果能看到版本号,说明 adb 已经可以用了。
常见目录大概会是:
- Windows:
platform-tools - macOS / Linux:
platform-tools
如果你想以后在任何目录都直接敲 adb,可以把 platform-tools 加进系统 PATH。
但如果你只是偶尔用,其实切到这个目录再执行命令也完全够了。
Windows 用户再补一句:
- Google 自家设备可以装
Google USB Driver - 其他品牌手机通常要装各自厂商的 USB 驱动
macOS 和 Linux 一般不需要额外 USB 驱动。
第二步:手机开启开发者选项和 USB 调试
要让电脑能通过 ADB 控制设备,手机上必须先打开开发者选项和 USB 调试。
常见路径一般是:
- 打开“设置”
- 进入“关于手机”
- 连续点击“版本号”或
Build number - 回到系统设置,进入“开发者选项”
- 打开
USB 调试
不同品牌的入口名字可能略有区别,但思路基本一样。
如果你的手机是 Android 4.2 及以上,开发者选项默认就是隐藏的,这一步属于正常流程,不是你没找对地方。
第三步:首次通过 USB 连接设备
现在用数据线把手机接到电脑上,然后在电脑里执行:
adb devices
第一次连接时,手机通常会弹出一个 RSA 指纹授权窗口,问你是否允许这台电脑进行 USB 调试。
这一步一定要点允许,否则 ADB 只能看到设备,但不能真正操作它。
授权成功后,再执行一次:
adb devices -l
正常情况下你会看到设备状态是:
device:已连接,能正常操作
如果你看到的是下面这些状态:
unauthorized:手机还没点允许,或者授权弹窗被你关掉了offline:连接已经建立,但 ADB 状态不正常,通常重新插线、重新授权或重启 ADB 就能恢复
这一步通过以后,后面的命令基本就都能用了。
第四步:先学会这几条最常用的命令
下面这几条,已经够你处理大部分日常需求了。
1. 查看当前连接的设备
adb devices -l
如果你电脑上同时连了多台设备,后面执行命令时最好带上序列号:
adb -s 设备序列号 shell
2. 进入设备 shell
adb shell
这条命令会直接进到设备命令行里。
你可以顺手试一下:
getprop ro.product.model
看看当前连上的是什么设备。
3. 安装 APK
adb install app.apk
如果你想覆盖安装已存在的版本,常用的是:
adb install -r app.apk
这条对测试安装特别常用。
4. 从设备拉文件到电脑
adb pull /sdcard/Download/test.txt ./
这会把设备里的文件拉到你当前电脑目录。
5. 从电脑推文件到设备
adb push ./hosts /sdcard/Download/
这条很适合传配置文件、脚本或者测试资源。
6. 抓日志
adb logcat
如果你只是想快速看应用报错,这条非常有用。
日志太多时,可以再配合关键词过滤。
7. 截图到电脑
adb exec-out screencap -p > screen.png
这条是平时写教程、留证据、做调试记录时很好用的一条。
8. 重启设备
adb reboot
如果你只是要重启手机或测试盒子,这条也很顺手。
第五步:停用或卸载系统应用
这一段是很多人开始学 ADB 的真正原因:
- 停用预装应用
- 卸载当前用户下看起来“删不掉”的系统应用
- 清掉不想看到的内置软件
这里先说最重要的原则:
- 优先停用,少用卸载
- 先确认包名,再执行命令
- 系统核心组件不要碰
如果你删的是桌面、系统界面、通话、短信、设置、包管理器、输入法之类的核心组件,轻则功能异常,重则系统直接出问题。
开始前,先学会找包名:
adb shell pm list packages
adb shell pm list packages -s
adb shell pm list packages | grep 关键词
如果你在 Windows 上没有 grep,可以换成:
adb shell pm list packages | findstr 关键词
另外再补一条更稳的检查命令:
adb shell am get-current-user
在大多数个人手机上,主用户通常就是 0。
但如果你设备开了多用户、工作资料或其他特殊环境,最好先确认当前用户,再决定要不要直接写 --user 0。
方案 1:先停用
如果你只是想让某个系统应用不再运行、不再出现在前台,优先用停用:
adb shell pm disable-user --user 0 包名
比如:
adb shell pm disable-user --user 0 com.example.app
这个方式的优点是:
- 风险相对更低
- 后悔了还能再打开
- 适合先测试“关掉会不会影响系统”
如果你想恢复:
adb shell pm enable 包名
方案 2:对当前用户卸载
如果你确认这个应用只是想从当前用户环境里移除,而不是单纯停用,可以用:
adb shell pm uninstall --user 0 包名
比如:
adb shell pm uninstall --user 0 com.example.app
这个命令在很多系统应用场景下,实际更像是:
- 从当前用户里移除
- 不一定真的把系统分区里的 APK 物理删除
我这里是根据 Android 官方 pm 命令说明和 AOSP 的 PackageManagerShellCommand 说明整理的。
简单说就是:uninstall --user 是对指定用户做移除,而不是对整台设备的系统分区做“彻底删库式”删除。
所以你可以把它理解成:
- 对“当前用户”卸载
- 对系统底层文件未必真的永久抹掉
停用和卸载怎么选
如果你拿不准,按这个顺序最稳:
- 先查包名
- 先
disable-user - 观察一段时间
- 确认没副作用,再决定要不要
uninstall --user 0
常用判断思路
下面这些通常更适合先停用观察:
- 厂商应用商店
- 厂商视频、音乐、阅读、浏览器
- 不需要的语音助手
- 明显的预装推广应用
下面这些一般不要乱动:
SystemUI- 默认桌面
- 设置
- 包安装器
- 电话、短信
- 输入法
- Google Play 服务或厂商基础服务框架
如果你真的不确定,就先别删。
第六步:无线调试怎么用
如果你不想一直插着数据线,可以直接用无线 ADB。
Android 11 及以上:优先用官方无线调试
Android 11 之后,官方已经支持更正规的无线调试流程。
开始前先确认:
- 电脑和手机在同一个 Wi-Fi 网络
- 手机已经打开开发者选项
- 手机里已经打开“无线调试”或
Wireless debugging
然后按设备上显示的配对信息来做:
adb pair 手机显示的IP:配对端口
输入手机上显示的配对码后,再执行:
adb connect 手机显示的IP:调试端口
连上之后,再跑一遍:
adb devices
看到设备在线,就说明无线 ADB 已经可用了。
旧方式:先 USB,再切 tcpip
如果你的设备不支持上面那套,或者你只是临时想把 USB 调试切成网络调试,可以先插线执行:
adb tcpip 5555
adb connect 设备IP:5555
这样设备就会在 5555 端口监听 ADB。
如果后面你想切回 USB:
adb usb
这一套在很多老教程里都能见到,现在依然能用,但对于 Android 11 及以上设备,我还是更建议优先走官方无线调试。
第七步:做一次自检
配置完成后,建议顺手检查这几项:
adb versionadb devices -ladb shell getprop ro.product.modeladb shelladb install -r app.apkadb pull/adb pushadb shell pm list packages
如果这些都能顺利跑通,说明你的 ADB 基础链路已经没问题了。
常见问题
1. adb devices 看不到设备
优先检查:
- 手机是否真的打开了
USB 调试 - 数据线是不是只能充电,不能传数据
- Windows 是否缺少 USB 驱动
- 电脑里是不是有旧的 ADB 进程状态异常
可以先试:
adb kill-server
adb start-server
adb devices
2. 设备显示 unauthorized
这通常说明手机上的授权弹窗还没确认。
解锁屏幕,重新插一次线,再看手机是否弹出“是否允许 USB 调试”。
3. 多台设备同时连接,命令报错
如果你同时连了模拟器和真机,或者连了两台真机,直接跑命令时可能会报:
adb: more than one device/emulator
这时候用序列号指定目标设备:
adb -s 设备序列号 shell
4. 无线 ADB 连不上
优先看:
- 电脑和手机是否真的在同一局域网
- 配对端口和调试端口是不是用混了
- 手机的无线调试开关是不是被系统自动关掉了
如果你用的是 adb tcpip 5555 老方法,也要确认手机当前 IP 没有变化。
5. 卸载或停用系统应用后出问题
这种情况先别慌,优先想想你刚动了哪个包。
如果你用的是停用方式,通常可以直接恢复:
adb shell pm enable 包名
如果你卸载的是 --user 0 这种用户级移除,后续能不能恢复,和设备系统、包状态、是否还能重新安装有关,不同机型表现会不完全一样。
所以从稳妥角度看,先停用、后观察 仍然是更推荐的顺序。
小结
如果你只是想把 ADB 先用起来,最值得先掌握的其实就这些:
- 安装
platform-tools - 打开
USB 调试 - 学会
adb devices - 学会
adb shell - 学会
install / push / pull / logcat - 知道怎么停用或按用户卸载系统应用
- 知道怎么切到无线 ADB
等这套链路跑顺以后,后面再继续学:
adb inputadb bugreportadb reverse/adb forward- 自动化脚本
- 配合
scrcpy做投屏和控制
参考资料
- Android Debug Bridge (adb):https://developer.android.com/guide/developing/tools/adb.html
- SDK Platform-Tools release notes:https://developer.android.com/tools/releases/platform-tools
- Get the Google USB Driver:https://developer.android.com/studio/run/win-usb
- USB host and accessory overview:https://developer.android.com/develop/connectivity/usb
- PackageManagerShellCommand (AOSP):https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
- adb interactions across users (AOSP):https://source.android.com/docs/devices/admin/multi-user-testing