跳到主要内容

ADB 教程:安装、连接手机与常用命令

一篇从 platform-tools 安装、USB 调试到无线调试和常用命令的 ADB 入门教程。

如果你平时会折腾 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 驱动。

ADB 安装与版本检查示意

第二步:手机开启开发者选项和 USB 调试

要让电脑能通过 ADB 控制设备,手机上必须先打开开发者选项和 USB 调试

常见路径一般是:

  1. 打开“设置”
  2. 进入“关于手机”
  3. 连续点击“版本号”或 Build number
  4. 回到系统设置,进入“开发者选项”
  5. 打开 USB 调试

不同品牌的入口名字可能略有区别,但思路基本一样。

如果你的手机是 Android 4.2 及以上,开发者选项默认就是隐藏的,这一步属于正常流程,不是你没找对地方。

第三步:首次通过 USB 连接设备

现在用数据线把手机接到电脑上,然后在电脑里执行:

adb devices

第一次连接时,手机通常会弹出一个 RSA 指纹授权窗口,问你是否允许这台电脑进行 USB 调试。
这一步一定要点允许,否则 ADB 只能看到设备,但不能真正操作它。

授权成功后,再执行一次:

adb devices -l

正常情况下你会看到设备状态是:

  • device:已连接,能正常操作

如果你看到的是下面这些状态:

  • unauthorized:手机还没点允许,或者授权弹窗被你关掉了
  • offline:连接已经建立,但 ADB 状态不正常,通常重新插线、重新授权或重启 ADB 就能恢复

这一步通过以后,后面的命令基本就都能用了。

USB 授权与 adb devices 输出示意

第四步:先学会这几条最常用的命令

下面这几条,已经够你处理大部分日常需求了。

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 的真正原因:

  • 停用预装应用
  • 卸载当前用户下看起来“删不掉”的系统应用
  • 清掉不想看到的内置软件

这里先说最重要的原则:

  • 优先停用,少用卸载
  • 先确认包名,再执行命令
  • 系统核心组件不要碰

如果你删的是桌面、系统界面、通话、短信、设置、包管理器、输入法之类的核心组件,轻则功能异常,重则系统直接出问题。

开始前,先学会找包名:

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 是对指定用户做移除,而不是对整台设备的系统分区做“彻底删库式”删除。

所以你可以把它理解成:

  • 对“当前用户”卸载
  • 对系统底层文件未必真的永久抹掉

停用和卸载怎么选

如果你拿不准,按这个顺序最稳:

  1. 先查包名
  2. disable-user
  3. 观察一段时间
  4. 确认没副作用,再决定要不要 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 配对与连接示意

第七步:做一次自检

配置完成后,建议顺手检查这几项:

  • adb version
  • adb devices -l
  • adb shell getprop ro.product.model
  • adb shell
  • adb install -r app.apk
  • adb pull / adb push
  • adb 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 input
  • adb bugreport
  • adb 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