adb 常用命令汇总_adb命令
Android Debug Bridge(ADB)是一个功能强大的命令行工具,用于与 Android 设备或模拟器进行通信,广泛应用于 Android 应用的开发、调试和测试。ADB 提供多种功能,如安装/卸载应用、访问设备 shell、传输文件、查看日志等。以下是对 ADB 常用命令的详细汇总,涵盖安装、配置、常用命令、实际应用场景、注意事项及最佳实践,帮助你快速上手并高效使用 ADB。
一、ADB 概述
1. 什么是 ADB?
- 定义:ADB(Android Debug Bridge)是 Android SDK 提供的一个客户端-服务器架构工具,用于在开发机与 Android 设备(或模拟器)之间建立通信桥梁。
- 组成:
- 客户端:运行在开发机上,发送 ADB 命令(命令行终端)。
- 守护进程(adbd):运行在 Android 设备上,执行命令。
- 服务器:运行在开发机上,管理客户端与守护进程的通信。
- 用途:
- 安装/卸载应用。
- 调试应用(查看日志、模拟输入)。
- 文件传输、设备管理。
- 执行 shell 命令,访问设备底层功能。
2. 安装 ADB
- Windows:
- 下载 Android SDK Platform Tools(包含 ADB)https://developer.android.com/studio/releases/platform-tools。
- 解压到指定目录(如
C:\platform-tools
)。 - 将目录添加到系统环境变量
PATH
。
- macOS/Linux:
- 验证安装:
adb version
输出 ADB 版本信息表示安装成功。
3. 启用 USB 调试
在 Android 设备上:
二、ADB 常用命令汇总
以下按功能分类,列出最常用的 ADB 命令及其用法。
1. 设备管理
- 查看连接的设备:
adb devices
输出:列出连接的设备序列号及状态(如 device
、offline
)。
- 指定设备(多设备时):
adb -s <serial_number> <command>
示例:adb -s RZCT809FTQM shell
- 重启设备:
adb reboot
变体:
adb start-server
adb kill-server
- 无线连接(Android 11+):
- 确保设备和电脑在同一 Wi-Fi 网络。
- 启用 开发者选项 > 无线调试,获取配对码和 IP 地址。
- 配对:
bash adb pair <ip>:<port> <pairing_code>
- 连接:
bash adb connect <ip>:<port>
示例:adb connect 192.168.1.100:5555
2. 应用管理
- 安装应用:
adb install <path_to_apk>
示例:adb install app.apk
adb uninstall <package_name>
示例:adb uninstall com.example.app
-k
:保留数据和缓存。- 列出已安装应用:
adb shell pm list packages
变体:
adb shell am start -n <package_name>/.ActivityName
示例:adb shell am start -n com.example/.MainActivity
- 强制停止应用:
adb shell am force-stop <package_name>
示例:adb shell am force-stop com.example.app
3. 文件管理
- 推送文件到设备:
adb push <local_path> <remote_path>
- 从设备拉取文件:
adb pull <remote_path> <local_path>
示例:adb pull /sdcard/file.txt ./
- 查看设备目录:
adb shell ls /sdcard/
4. 日志与调试
- 查看实时日志:
adb logcat
adb logcat *:E
- 生成 Bug 报告:
adb bugreport > bugreport.txt
5. Shell 操作
- 进入设备 Shell:
adb shell
进入交互式 shell,执行 Linux 命令(如 ls
、cat
)。
- 执行单条 Shell 命令:
adb shell <command>
示例:adb shell getprop ro.build.version.release
(获取 Android 版本)
- 模拟按键事件:
adb shell input keyevent <keycode>
常见按键:
adb shell input text "HelloWorld"
- 截屏:
adb shell screencap /sdcard/screenshot.png
adb pull /sdcard/screenshot.png
- 录屏:
adb shell screenrecord /sdcard/screenrecord.mp4
adb pull /sdcard/screenrecord.mp4
默认录制 3 分钟,可用 --time-limit
设置时长。
6. 设备信息
- 获取设备信息:
adb shell getprop
常见属性:
ro.serialno
:设备序列号ro.build.version.release
:Android 版本ro.product.model
:设备型号- 获取电池信息:
adb shell dumpsys battery
- 获取屏幕分辨率:
adb shell wm size
7. Fastboot 命令
Fastboot 用于设备在 bootloader 模式下操作:
- 进入 Fastboot 模式:
adb reboot bootloader
- 解锁设备:
fastboot oem unlock
- 刷写镜像:
fastboot flash recovery recovery.img
三、实际应用场景
1. 调试应用
- 查看应用日志:
adb logcat | grep "MyAppTag"
- 模拟用户输入:
adb shell input tap 500 500
adb shell input text "TestInput"
2. 安装/卸载应用
- 批量安装 APK:
for file in *.apk; do adb install "$file"; done
- 卸载系统应用(需 root):
adb shell pm uninstall -k --user 0 com.example.bloatware
3. 自动化测试
- 结合脚本执行重复操作:
adb shell input keyevent 3; adb shell input text "Test"; adb shell input keyevent 66
- 录屏验证 UI:
adb shell screenrecord /sdcard/test.mp4
4. 备份与恢复
- 备份设备数据:
adb backup -apk -shared -all -f backup.ab
- 恢复数据:
adb restore backup.ab
注意:Android 12+ 对备份功能有限制,需应用支持。
5. 无线调试
- 配对设备:
adb pair 192.168.1.100:5555 <pairing_code>
- 连接并使用:
adb connect 192.168.1.100:5555
adb shell
四、注意事项
- USB 调试未启用:
- 确保设备启用 开发者选项 和 USB 调试,否则
adb devices
无输出。
- 设备未识别:
- 多设备冲突:
- 使用
-s <serial_number>
指定设备。 - 示例:
adb -s RZCT809FTQM install app.apk
- 无线调试问题:
- 命令执行失败:
- 安全性:
五、最佳实践
- 添加 ADB 到 PATH:
- 将
platform-tools
目录添加到系统环境变量,方便全局运行adb
。 - Windows 示例:
C:\platform-tools
- macOS/Linux 示例:
export PATH=$PATH:~/platform-tools
- 使用脚本自动化:
- 编写 shell 脚本批量执行 ADB 命令。
- 示例(批量安装 APK):
bash for file in *.apk; do adb install "$file"; done
- 日志过滤:
- 使用
grep
或logcat
过滤器减少日志噪音。 - 示例:
adb logcat *:W | grep "MyApp"
- 无线调试优先:
- 定期检查设备状态:
- 使用
adb devices -l
查看详细信息,确保连接正常。
- 学习高级工具:
六、常见问题与解决
- 问题:
adb devices
无设备:
- 问题:无线调试连接失败:
- 原因:网络防火墙阻止、IP/端口错误。
- 解决:
- 确保同一 Wi-Fi 网络。
- 检查 IP 和端口:
adb connect <ip>:<port>
。
- 问题:
adb install
失败:
- 原因:APK 不兼容、签名冲突。
- 解决:
- 使用
-r
覆盖安装。 - 检查 APK 兼容性(API 级别)。
- 使用
- 问题:日志过多难以分析:
- 原因:
adb logcat
输出所有系统日志。 - 解决:使用过滤器,如
adb logcat *:E
或adb logcat | grep "MyApp"
.
七、总结
ADB 是 Android 开发和调试的强大工具,支持设备管理、应用安装、文件传输、日志查看等多种功能。掌握常用命令(如 adb devices
、adb install
、adb logcat
)和无线调试,可以显著提高开发效率。遵循最佳实践(如配置 PATH、自动化脚本)和注意事项(如检查驱动、确保安全性),能确保 ADB 的可靠使用。对于复杂场景,可结合 scrcpy
或 Appium
等工具进一步扩展功能。
如果你需要更详细的命令示例(如特定场景的脚本、日志分析)或高级用法(如 ADB 结合自动化测试),请告诉我!