adb (Android Debug Bridge) 是一个强大的命令行工具,它允许你与模拟器或连接的 Android 设备进行通信,在 Windows 的 cmd (命令提示符) 或 PowerShell 中使用 adb 是 Android 开发者和爱好者的必备技能。

环境准备
在开始之前,你必须确保 adb 命令可以在任何目录下被识别到,这需要将 adb 的路径添加到系统的 Path 环境变量中。
- 下载 ADB: 从 Android 官方 SDK 平台工具页面 下载
platform-tools压缩包。 - 解压: 将下载的 ZIP 文件解压到一个固定且不含中文和空格的路径,
C:\adb。 - 添加到 Path:
- 右键点击“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
- 在“系统变量”中找到名为
Path的变量,双击它。 - 点击“新建”,然后将
C:\adb(或你的解压路径) 添加进去。 - 一路点击“确定”保存设置。
- 验证: 打开一个新的
cmd窗口,输入adb version,如果显示了版本号,说明配置成功。
常用 ADB 命令分类详解
以下命令都在 cmd 窗口中执行。
基础与设备连接
这些是使用 adb 最先需要掌握的命令。
| 命令 | 作用 | 示例 |
|---|---|---|
adb version |
检查 adb 版本信息。 |
adb version |
adb devices |
最常用,列出所有连接的设备(真机或模拟器)。 | adb devices |
adb start-server |
强制启动 adb 后台服务器。 |
adb start-server |
adb kill-server |
非常常用,停止 adb 后台服务器,在设备连接异常或无法识别时,先执行此命令,再重试。 |
adb kill-server |
adb connect <设备IP>:<端口> |
通过网络连接到设备(需在设备上开启“无线调试”)。 | adb connect 192.168.1.100:5555 |
adb disconnect |
断开所有网络连接的设备。 | adb disconnect |
adb devices 输出说明:

List of devices attached: 下面是设备列表。xxxxxxxx device: 设备已连接并授权,可以正常使用。xxxxxxxx unauthorized: 设备已连接,但未授权电脑,请在手机弹出的对话框中点击“允许”。xxxxxxxx offline: 设备离线或无响应,可以尝试adb kill-server后重连。
文件操作
在电脑和设备之间传输文件非常方便。
| 命令 | 作用 | 示例 |
|---|---|---|
adb push <本地路径> <设备路径> |
将电脑上的文件复制到设备上。 | adb push C:\Users\YourUser\Desktop\test.txt /sdcard/ |
adb pull <设备路径> <本地路径> |
将设备上的文件复制到电脑上。 | adb pull /sdcard/DCIM/Camera/ /D:\backup\ |
adb shell |
进入设备的 Linux 命令行环境,后续命令都在设备上执行。 | adb shell |
Shell 命令 (核心)
adb shell 是 adb 的灵魂,让你能在设备上执行各种 Linux 命令。
1 Shell 基础操作
| 命令 | 作用 | 示例 |
|---|---|---|
adb shell |
进入交互式 Shell,输入 exit 或按 Ctrl+C 退出。 |
adb shell |
adb shell <命令> |
在单行中执行 Shell 命令,不进入交互模式。 | adb shell ls /sdcard/ |
adb shell pm list packages |
列出所有已安装的应用包名。 | adb shell pm list packages |
adb shell pm list packages -f |
列出包名及其对应的 APK 文件路径。 | adb shell pm list packages -f |
adb shell pm path <包名> |
查找指定应用的 APK 文件在设备上的完整路径。 | adb shell pm path com.tencent.qq |
adb shell am force-stop <包名> |
强制停止一个应用。 | adb shell am force-stop com.tencent.qq |
adb shell dumpsys activity top \| findstr "ACTIVITY" |
查看当前前台运行的应用的包名和 Activity。 | adb shell dumpsys activity top \| findstr "ACTIVITY" |
2 Shell 文件和目录管理
| 命令 | 作用 | 示例 |
|---|---|---|
ls |
列出当前目录下的文件和文件夹。 | ls |
cd <目录> |
切换目录。 | cd /sdcard/Download |
mkdir <目录名> |
创建新目录。 | mkdir my_folder |
rm <文件> |
删除文件。 | rm test.txt |
rm -r <目录> |
递归删除目录及其所有内容。 | rm -r my_folder |
cat <文件> |
查看文件内容。 | cat /sdcard/system.prop |
chmod <权限> <文件> |
修改文件权限。 | chmod 777 /sdcard/script.sh |
应用管理
安装、卸载、清除数据等操作。
| 命令 | 作用 | 示例 |
|---|---|---|
adb install <APK路径> |
安装应用到设备。 | adb install C:\app\my_app.apk |
adb install -r <APK路径> |
覆盖安装应用(保留数据和缓存)。 | adb install -r C:\app\my_app_v2.apk |
adb uninstall <包名> |
卸载应用(会删除应用数据)。 | adb uninstall com.tencent.qq |
adb uninstall -k <包名> |
卸载应用但保留数据和缓存。 | adb uninstall -k com.tencent.qq |
adb shell pm clear <包名> |
清除应用数据和缓存(相当于在设置中“清除缓存”)。 | adb shell pm clear com.tencent.qq |
日志查看
调试应用问题的利器。

| 命令 | 作用 | 示例 |
|---|---|---|
adb logcat |
最常用,实时查看设备的系统日志,按 Ctrl+C 停止。 |
adb logcat |
adb logcat -c |
清空之前的日志缓存。 | adb logcat -c |
adb logcat -s <标签> |
只显示指定标签的日志。 | adb logcat -s ActivityManager |
adb logcat | findstr "关键字" |
过滤日志,只显示包含关键字的行。 | adb logcat \| findstr "E/MyApp" |
adb logcat -v time |
以时间戳格式显示日志。 | adb logcat -v time |
屏幕与输入
模拟用户操作。
| 命令 | 作用 | 示例 |
|---|---|---|
adb shell input keyevent <按键码> |
模拟按键。 | adb shell input keyevent 26 (电源键) adb shell input keyevent 82 (菜单键) |
adb shell input tap <x坐标> <y坐标> |
模拟点击屏幕指定位置。 | adb shell input tap 500 1200 |
adb shell input swipe <x1> <y1> <x2> <y2> <时长> |
模拟滑动屏幕。 | adb shell input swipe 300 1000 300 500 300 (从下往上滑动) |
adb shell screencap -p <设备路径> |
截取屏幕并保存到设备。 | adb shell screencap -p /sdcard/screenshot.png |
adb shell screenrecord <设备路径> |
录制屏幕,按 Ctrl+C 停止。 |
adb shell screenrecord /sdcard/record.mp4 |
系统信息
获取设备状态。
| 命令 | 作用 | 示例 |
|---|---|---|
adb shell getprop |
查看设备的所有系统属性。 | adb shell getprop |
adb shell getprop ro.product.model |
获取设备型号。 | adb shell getprop ro.product.model |
adb shell getprop ro.build.version.release |
获取 Android 系统版本。 | adb shell getprop ro.build.version.release |
adb shell settings get global airplane_mode_on |
查看飞行模式状态。 | adb shell settings get global airplane_mode_on |
实战场景示例
场景:你开发了一个 App,想在调试时查看它的日志。
- 连接设备:
adb devices(确保设备已连接并显示device) - 安装 App:
adb install -r C:\MyApp\app-debug.apk - 清除旧数据 (可选):
adb shell pm clear com.mycompany.myapp - 启动 App: 在手机上手动启动。
- 查看日志:
- 打开一个新的
cmd窗口。 - 运行
adb logcat | findstr "MyApp"。 - 现在在 App 中进行操作,你会在
cmd窗口中实时看到相关的日志输出。
- 打开一个新的
场景:你的 App 卡住了,需要强制重启它。
- 停止应用:
adb shell am force-stop com.mycompany.myapp - 重新启动应用 (通过 ADB):
adb shell am start -n com.mycompany.myapp/.MainActivity(需要知道你的主 Activity)
常见问题与解决
-
问题:
'adb' 不是内部或外部命令...- 解决: 没有正确配置环境变量,请重新检查
Path变量是否包含了adb.exe所在的文件夹路径。
- 解决: 没有正确配置环境变量,请重新检查
-
问题:
adb devices显示unauthorized。- 解决: 在手机上找到弹出的“允许 USB 调试”的对话框,勾选“总是允许”并点击“确定”。
-
问题: 设备连接时断时续或
offline。- 解决: 尝试更换 USB 线、USB 接口,或者在电脑上执行
adb kill-server后再拔插 USB 线重连。
- 解决: 尝试更换 USB 线、USB 接口,或者在电脑上执行
-
问题: Windows 上
adb pull或adb push时提示Protocol error或failed to copy...- 解决: 这通常是 MTP (媒体传输协议) 的问题,在手机的通知栏,将 USB 连接模式从“传输文件”或“MTP”切换为“充电”模式,然后再切回“传输文件”模式,或者直接重启电脑和手机。
希望这份详细的指南能帮助你熟练掌握 cmd 中的 adb 命令!
