ADB(Android Debug Bridge)基本概念
ADB是Android平台的核心调试工具,用于在开发机(如PC)与Android设备(真机或模拟器)之间建立通信桥梁。采用客户端-服务器架构:
- 客户端:运行在开发机上,接收用户输入的命令(如命令行)。
- 服务器:在开发机后台运行,管理客户端与设备的连接(默认监听端口5037)。
- 守护进程(adbd):在Android设备后台执行命令,处理服务器转发的请求。
核心价值:
- 突破应用沙箱限制,直接操作设备底层资源。
- 提供跨平台统一接口(兼容Windows、macOS、Linux)。
- 支持设备管理、应用调试、文件传输和系统控制。
工作中常用命令
设备连接与管理
adb devices:列出当前连接的设备及序列号。adb connect <IP:PORT>:通过Wi-Fi连接设备(需开启调试)。adb disconnect:断开指定设备连接。adb -s <serialNumber> <command>:指定设备执行命令(多设备环境适用)。
应用操作
adb install <path/to/app.apk>:安装应用(-r参数覆盖安装)。adb uninstall <package.name>:卸载指定应用。adb shell pm list packages:列出设备所有应用包名。adb shell am start -n <package/activity>:启动特定应用活动。
文件传输
adb push <local> <remote>:将文件从开发机推送到设备。adb pull <remote> <local>:从设备拉取文件到开发机。adb shell ls <path>:查看设备目录内容。
日志与调试
adb logcat:实时查看系统日志(-s TAG过滤特定标签)。adb bugreport:生成完整错误报告(含日志、系统状态)。adb shell dumpsys <service>:获取系统服务状态(如电池、内存)。
Shell交互与权限
adb shell:进入设备的交互式命令行界面。adb shell <command>:直接在设备执行命令(如adb shell top)。adb root:切换到root权限(需设备支持)。adb remount:重新挂载系统分区为可写状态。
常见问题及排查手段
设备连接失败
- 问题表现 :
adb devices无设备显示,或提示未授权。 - 排查手段 :
确保设备USB调试已开启(开发者选项中启用)。
检查USB线缆连接(更换线缆或端口测试)。
重启ADB服务:adb kill-server后adb start-server。
检查设备授权提示(设备屏幕确认调试权限)。
命令无响应或执行失败
- 问题表现 :命令超时、报错(如
device not found)。 - 排查手段 :
确认设备在线(adb devices显示状态为device)。
验证命令语法(adb help查看格式)。
检查ADB版本兼容性(adb version确保最新)。
指定设备序列号执行:adb -s <serial> <command>。
日志无法捕获或分析
- 问题表现 :
adb logcat无输出或日志丢失。 - 排查手段 :
清除日志缓存:adb logcat -c。
添加过滤器(如adb logcat -s ActivityManager)。
确保应用在运行状态(adb shell ps检查进程)。
生成详细报告:adb bugreport分析系统快照。
权限不足或操作受限
- 问题表现 :命令返回
permission denied或无法修改系统文件。 - 排查手段 :
获取root权限:adb root(需设备解锁)。
重新挂载分区:adb remount。
检查SELinux状态(adb shell getenforce),必要时禁用。
通用建议
- 定期更新ADB工具包以兼容新设备。
- 无线连接时确保网络稳定。
- 使用
adb forward映射端口解决端口冲突。