ADB 命令大全:从连接调试到应用管理
ADB(Android Debug Bridge)是 Android 开发和排障最常用的命令行工具之一。
这篇文章按“能直接拿来用”的思路整理了高频命令,并给出典型场景示例。
一、准备与连接
1) 查看 adb 版本
adb version
用于确认本机 SDK Platform Tools 是否可用。
2) 启动/重启 adb 服务
adb start-server
adb kill-server
adb start-server
当设备列表异常、端口占用、连接不稳定时,优先重启 adb 服务。
3) 查看已连接设备
adb devices
adb devices -l
devices:显示序列号与状态(device/unauthorized/offline)-l:附加品牌、型号、传输方式等信息
4) 指定设备执行命令
多设备并行调试时建议显式指定序列号:
adb -s YOUR_SERIAL shell getprop ro.product.model
二、日志与排障
1) 实时查看 logcat
adb logcat
2) 只看指定 Tag
adb logcat -s ActivityManager Flutter:D *:S
含义:
ActivityManager默认级别Flutter:D仅显示 Flutter 的 Debug 及以上*:S其余 Tag 静默
3) 导出日志到文件
adb logcat -v time > android.log
-v time 会在日志前添加时间戳,便于复盘问题时间线。
三、应用安装、卸载、启动
1) 安装 APK
adb install app-release.apk
adb install -r app-release.apk
adb install -r -d app-debug.apk
-r:覆盖安装(保留数据)-d:允许降级安装(debug 场景常用)
2) 卸载应用
adb uninstall com.example.app
adb uninstall -k com.example.app
- 默认:删除应用和数据
-k:保留数据与缓存目录
3) 启动应用 Activity
adb shell am start -n com.example.app/.MainActivity
四、包管理(pm)高频命令
这部分是线上排障最常见的一组。
1) 查询设备已安装包
adb shell pm list packages
adb shell pm list packages -3
adb shell pm list packages | grep example
-3:仅第三方应用
2) 查看某包 APK 安装路径(你要求的命令)
adb shell pm path com.xg.xxxx
典型输出:
package:/data/app/~~AbCdEf12345/com.xg.xxxx-XYZ/base.apk
这个命令常用于:
- 确认目标包是否真的安装在设备上
- 配合
adb pull导出 APK 做二次分析
3) 导出 APK 到本地
adb shell pm path com.xg.xxxx
adb pull /data/app/~~AbCdEf12345/com.xg.xxxx-XYZ/base.apk ./com.xg.xxxx.apk
建议先执行第一条获取真实路径,再执行 pull。
4) 查询当前前台应用
adb shell dumpsys window | grep mCurrentFocus
用于快速确认“当前显示的是哪个页面/进程”。
五、文件传输与系统信息
1) 上传文件到设备
adb push ./test.txt /sdcard/Download/test.txt
2) 从设备下载文件
adb pull /sdcard/Download/test.txt ./test.txt
3) 查看设备属性
adb shell getprop ro.build.version.release
adb shell getprop ro.product.model
adb shell getprop ro.product.cpu.abi
六、截图、录屏、输入模拟
1) 屏幕截图
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png ./screen.png
2) 屏幕录制
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 ./demo.mp4
3) 模拟点击与输入
adb shell input tap 540 1200
adb shell input text "hello_adb"
adb shell input keyevent 66
keyevent 66等价回车键
七、无线调试(Android 11+)
1) 配对与连接(示意)
adb pair 192.168.1.10:37123
adb connect 192.168.1.10:5555
adb devices
在同一局域网下,无线调试可减少 USB 反复插拔。
八、实战脚本:一键导出目标包 APK
下面是一个可直接复用的 Bash 脚本,自动拿路径并导出 APK:
#!/usr/bin/env bash
set -euo pipefail
PKG="com.xg.xxxx"
OUT="./${PKG}.apk"
APK_PATH=$(adb shell pm path "$PKG" | sed -n 's/^package://p' | tr -d '\r' | head -n 1)
if [ -z "$APK_PATH" ]; then
echo "Package not found: $PKG"
exit 1
fi
echo "Found apk path: $APK_PATH"
adb pull "$APK_PATH" "$OUT"
echo "Done -> $OUT"
如果你在 Windows PowerShell 下使用,可把解析部分改为 PowerShell 语法。
九、常见问题速查
1) device unauthorized
- 设备端未授权 USB 调试
- 重新插拔后确认弹窗并点击“允许”
2) device offline
adb kill-server && adb start-server- 更换数据线/USB 端口
3) 命令执行慢或卡顿
- 检查是否多设备冲突(记得
-s) - 关闭高频日志输出窗口再重试
结语
ADB 的价值不在“命令多”,而在“遇到问题时能快速定位”。
建议把本文中你常用的 10~15 条命令沉淀成团队脚本,能显著提升联调和排障效率。