ADB 关键命令与配置速查笔记(自用复盘版)
适用场景:Android 开发调试、自动化测试、设备管理、日志分析
最后更新:2026-04-07
一、ADB 简介与环境配置
1.1 什么是 ADB
ADB(Android Debug Bridge)是 Android SDK 自带的调试工具,采用 C/S 架构,由三部分组成:
- Client(电脑端命令行)
- Server(电脑后台服务进程)
- Daemon(设备端守护进程)
1.2 下载与安装
| 方式 |
说明 |
| Android Studio 自带 |
路径:SDK/platform-tools/ |
| 单独下载 Platform Tools |
官网下载 |
| 包管理器(macOS) |
brew install android-platform-tools |
| 包管理器(Ubuntu) |
sudo apt install adb |
1.3 环境变量配置(快捷使用)
二、设备连接与基础命令
2.1 连接设备
| 连接方式 |
命令 |
备注 |
| USB 连接 |
自动识别 |
需开启「开发者选项」+「USB 调试」 |
| TCP/IP 连接(无线) |
adb connect 192.168.x.x:5555 |
先 USB 连接后执行 adb tcpip 5555 |
| 断开无线连接 |
adb disconnect 192.168.x.x:5555 |
|
2.1 .1方式一:直连模式(网络地址直连,最常用)
这种方式模拟器会使用一个虚拟的网络端口,电脑通过连接这个端口来操作模拟器。
| 操作 |
说明 |
| 查找ADB端口 |
设置中心 → 其他设置 → ADB调试端口(不同版本可能略有差异,但大多数新版在"其他设置"里) |
| 执行连接命令 |
adb connect 127.0.0.1:端口号(如 adb connect 127.0.0.1:16384)。 |

2.2 查看与指定设备
| 命令 |
作用 |
adb devices |
列出已连接设备及状态(device/offline/unauthorized) |
adb -s <serial> shell |
指定某设备执行命令(多设备时必用) |
adb -d |
仅对 USB 设备操作 |
adb -e |
仅对模拟器操作 |
2.3 重启与服务器管理
| 命令 |
作用 |
adb kill-server |
停止 adb 服务(解决端口冲突或卡死) |
adb start-server |
启动 adb 服务 |
adb reboot |
重启设备 |
adb reboot bootloader |
重启到 fastboot 模式 |
adb reboot recovery |
重启到 recovery 模式 |
三、应用管理(最常用)
| 操作 |
命令示例 |
| 安装 APK |
adb install -r app.apk (-r 覆盖安装) |
| 安装到 SD 卡 |
adb install -s app.apk |
| 卸载应用 |
adb uninstall com.example.package |
| 保留数据卸载 |
adb uninstall -k com.example.package |
| 查看所有应用包名 |
adb shell pm list packages |
| 查看第三方应用 |
adb shell pm list packages -3 |
| 清除应用数据 |
adb shell pm clear com.example.package |
| 强制停止应用 |
adb shell am force-stop com.example.package |
| 启动 Activity |
adb shell am start -n com.example.pkg/.MainActivity |
| 发送广播 |
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED |
四、文件传输
| 操作 |
命令 |
| 推送文件到设备 |
adb push 本地文件路径 /sdcard/目标路径 |
| 从设备拉取文件 |
adb pull /sdcard/文件路径 本地保存路径 |
| 列出目录内容 |
adb shell ls -l /sdcard/ |
| 删除文件/目录 |
adb shell rm -rf /sdcard/test.txt |
五、日志查看(Logcat)
| 命令 |
说明 |
adb logcat |
实时输出所有日志 |
adb logcat -c |
清空日志缓冲区 |
adb logcat -v time |
显示时间戳 |
adb logcat -v threadtime |
显示时间、线程、优先级 |
adb logcat -s TAG |
按 TAG 过滤(如 adb logcat -s ActivityManager) |
adb logcat *:V |
最低优先级 V (Verbose) |
adb logcat *:D |
最低优先级 D (Debug) |
adb logcat *:E |
只显示错误日志 |
| 保存日志到文件 |
adb logcat -v time > crash.log |
常用过滤组合
bash
复制代码
# 显示 Error 及以上级别,并过滤包含 "AndroidRuntime" 的行
adb logcat *:E | grep AndroidRuntime
# 清空后实时抓取崩溃日志
adb logcat -c && adb logcat -v time | grep -E "FATAL|AndroidRuntime"
六、屏幕截图与录制
| 操作 |
命令 |
| 截图(保存到设备) |
adb shell screencap /sdcard/screenshot.png |
| 截图并直接拉取 |
adb exec-out screencap -p > screenshot.png |
| 屏幕录制(3分钟) |
adb shell screenrecord /sdcard/demo.mp4 |
| 指定分辨率/码率 |
adb shell screenrecord --size 720x1280 --bit-rate 4000000 /sdcard/demo.mp4 |
七、模拟输入与按键
| 操作 |
命令 |
| 模拟点击坐标 |
adb shell input tap 500 1000 |
| 模拟滑动 |
adb shell input swipe 100 500 900 500(起点→终点) |
| 模拟长按 |
adb shell input swipe 100 500 100 500 2000(停留2000ms) |
| 输入文本 |
adb shell input text "Hello"(不支持中文,可用 adb shell am broadcast 配合输入法) |
| 返回键 |
adb shell input keyevent KEYCODE_BACK 或 adb shell input keyevent 4 |
| Home 键 |
adb shell input keyevent 3 |
| 菜单键 |
adb shell input keyevent 82 |
| 电源键 |
adb shell input keyevent 26 |
| 音量+ |
adb shell input keyevent 24 |
| 音量- |
adb shell input keyevent 25 |
八、Shell 与系统信息
8.1 进入交互式 Shell
bash
复制代码
adb shell # 进入设备 shell
exit # 退出
8.2 常用系统查询
| 命令 |
作用 |
adb shell getprop ro.product.model |
设备型号 |
adb shell getprop ro.build.version.release |
Android 版本 |
adb shell dumpsys battery |
电池信息(电量、温度、状态) |
adb shell dumpsys meminfo <pkg> |
应用内存占用 |
adb shell dumpsys cpuinfo |
CPU 使用情况 |
adb shell dumpsys window displays |
屏幕分辨率、密度 |
adb shell wm size |
查看当前分辨率 |
adb shell wm density |
查看屏幕密度 |
adb shell wm overscan |
显示区域边距 |
8.3 修改系统设置(需要 root 或系统应用权限)
bash
复制代码
adb shell settings put global <key> <value>
# 示例:关闭自动旋转
adb shell settings put system accelerometer_rotation 0
九、常用组合命令与脚本模板
9.1 快速截图到电脑桌面(Windows)
bash
复制代码
adb exec-out screencap -p > %USERPROFILE%\Desktop\screenshot_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.png
9.2 无线连接一键脚本
bash
复制代码
# 1. USB 连接后执行
adb tcpip 5555
# 2. 查看设备 IP(设置 → 关于手机 → 状态信息)
# 3. 连接
adb connect 192.168.1.100:5555
# 4. 断开 USB 后仍可操作
9.3 批量安装 APK
bash
复制代码
for %f in (*.apk) do adb install "%f"
十、常见问题与解决
| 问题 |
可能原因 |
解决方案 |
device offline |
设备弹出授权未确认 |
重新插拔 USB,确认 RSA 指纹 |
unauthorized |
未授权调试 |
设备上勾选「始终允许」并重新连接 |
no devices/emulators found |
驱动未装 / USB 调试未开 |
安装驱动,检查开发者选项,重启 adb server |
adb server version mismatch |
多个 adb 版本冲突 |
kill-server,确保 PATH 中只有一个 adb |
| 无线连接失败 |
端口被屏蔽 / 同一 WiFi |
关闭防火墙,使用 ping 测试连通性 |
insufficient permissions (Linux) |
无设备访问权限 |
配置 udev 规则或使用 sudo adb |
adb install FAILED_INSTALL_INVALID |
APK 损坏或签名冲突 |
卸载旧版本重试 |
十一、实用技巧
11.1 快速查看当前 Activity
bash
复制代码
adb shell dumpsys window | grep mCurrentFocus
11.2 模拟弱网环境(需要 root)
bash
复制代码
adb shell netstat # 查看网络状态
# 或使用 tc 命令(需要设备内核支持)
11.3 获取应用启动时间
bash
复制代码
adb shell am start -W com.example.pkg/.MainActivity
# 输出:ThisTime, TotalTime, WaitTime
11.4 绕过安装包扫描(覆盖安装降级)
bash
复制代码
adb install -r -d old.apk # `-d` 允许降级安装
十二、推荐别名配置(.bashrc / .zshrc)
bash
复制代码
alias adb-devices='adb devices -l'
alias adb-logcat-clear='adb logcat -c'
alias adb-screenshot='adb exec-out screencap -p > screenshot.png'
alias adb-reconnect='adb kill-server && adb start-server && adb devices'