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
  1. 下载 Android SDK Platform Tools(包含 ADB)https://developer.android.com/studio/releases/platform-tools
  2. 解压到指定目录(如 C:\platform-tools)。
  3. 将目录添加到系统环境变量 PATH
  • macOS/Linux
  1. 使用包管理器(如 Homebrew:brew install android-platform-tools)。
  2. 或下载 Platform Tools 解压后配置 PATH
  • 验证安装
  adb version

输出 ADB 版本信息表示安装成功。

3. 启用 USB 调试

在 Android 设备上:

  1. 打开 设置 > 关于手机
  2. 连续点击 版本号 7 次,启用开发者模式。
  3. 返回 设置 > 开发者选项,开启 USB 调试
  4. 连接设备到电脑,确认弹窗提示允许 USB 调试。

二、ADB 常用命令汇总

以下按功能分类,列出最常用的 ADB 命令及其用法。

1. 设备管理

  • 查看连接的设备
  adb devices

输出:列出连接的设备序列号及状态(如 deviceoffline)。

  • 指定设备(多设备时)
  adb -s <serial_number> <command>

示例:adb -s RZCT809FTQM shell

  • 重启设备
  adb reboot

变体:

  • adb reboot bootloader:进入 fastboot 模式。
  • adb reboot recovery:进入恢复模式。
  • 启动/停止 ADB 服务器
  adb start-server
  adb kill-server

用于解决连接问题。

  • 无线连接(Android 11+)
  1. 确保设备和电脑在同一 Wi-Fi 网络。
  2. 启用 开发者选项 > 无线调试,获取配对码和 IP 地址。
  3. 配对:
    bash adb pair <ip>:<port> <pairing_code>
  4. 连接:
    bash adb connect <ip>:<port>
    示例:adb connect 192.168.1.100:5555

2. 应用管理

  • 安装应用
  adb install <path_to_apk>

示例:adb install app.apk

  • -r:覆盖安装,保留数据。
  • -t:允许测试包安装。
  • 卸载应用
  adb uninstall <package_name>

示例:adb uninstall com.example.app

  • -k:保留数据和缓存。
  • 列出已安装应用
  adb shell pm list packages

变体:

  • -3:仅列出第三方应用。
  • -s:仅列出系统应用。
  • 启动 Activity
  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 push file.txt /sdcard/

  • 从设备拉取文件
  adb pull <remote_path> <local_path>

示例:adb pull /sdcard/file.txt ./

  • 查看设备目录
  adb shell ls /sdcard/

4. 日志与调试

  • 查看实时日志
  adb logcat
  • 过滤特定标签:adb logcat | grep "MyAppTag"
  • 保存到文件:adb logcat > log.txt
  • 获取错误日志
  adb logcat *:E
  • 生成 Bug 报告
  adb bugreport > bugreport.txt

用于收集设备状态和日志。

5. Shell 操作

  • 进入设备 Shell
  adb shell

进入交互式 shell,执行 Linux 命令(如 lscat)。

  • 执行单条 Shell 命令
  adb shell <command>

示例:adb shell getprop ro.build.version.release(获取 Android 版本)

  • 模拟按键事件
  adb shell input keyevent <keycode>

常见按键:

  • KEYCODE_HOME(3):主页
  • KEYCODE_BACK(4):返回
  • KEYCODE_POWER(26):电源
    示例:adb shell input keyevent 3
  • 输入文本
  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

四、注意事项

  1. USB 调试未启用
  • 确保设备启用 开发者选项USB 调试,否则 adb devices 无输出。
  1. 设备未识别
  • 检查 USB 驱动(Windows 需安装设备厂商驱动)。
  • 更换 USB 线或端口,确保支持数据传输(非仅充电线)。
  • 尝试切换 USB 模式(MTP/PTP)。
  1. 多设备冲突
  • 使用 -s <serial_number> 指定设备。
  • 示例:adb -s RZCT809FTQM install app.apk
  1. 无线调试问题
  • 确保设备和电脑在同一 Wi-Fi 网络。
  • 检查防火墙设置,ADB 使用 TCP 端口 5555。
  1. 命令执行失败
  • 检查 ADB 版本兼容性,建议使用最新 Platform Tools。
  • 使用 adb --help 查看命令支持情况。
  1. 安全性
  • ADB 提供对设备的深入访问,避免在不安全环境下启用 USB 调试。
  • 定期检查设备授权状态,防止未授权访问。

五、最佳实践

  1. 添加 ADB 到 PATH
  • platform-tools 目录添加到系统环境变量,方便全局运行 adb
  • Windows 示例:C:\platform-tools
  • macOS/Linux 示例:export PATH=$PATH:~/platform-tools
  1. 使用脚本自动化
  • 编写 shell 脚本批量执行 ADB 命令。
  • 示例(批量安装 APK):
    bash for file in *.apk; do adb install "$file"; done
  1. 日志过滤
  • 使用 greplogcat 过滤器减少日志噪音。
  • 示例:adb logcat *:W | grep "MyApp"
  1. 无线调试优先
  • 在 Android 11+ 上优先使用无线调试,减少 USB 连接问题。
  1. 定期检查设备状态
  • 使用 adb devices -l 查看详细信息,确保连接正常。
  1. 学习高级工具
  • 结合 scrcpy(屏幕镜像)、logcat-color 等工具提升效率。

六、常见问题与解决

  1. 问题:adb devices 无设备
  • 原因:USB 调试未启用、驱动未安装、USB 线仅支持充电。
  • 解决
    • 确认 USB 调试已开启。
    • 更换 USB 线或端口,设置为 MTP/PTP 模式。
    • 安装设备驱动(Windows)。
  1. 问题:无线调试连接失败
  • 原因:网络防火墙阻止、IP/端口错误。
  • 解决
    • 确保同一 Wi-Fi 网络。
    • 检查 IP 和端口:adb connect <ip>:<port>
  1. 问题:adb install 失败
  • 原因:APK 不兼容、签名冲突。
  • 解决
    • 使用 -r 覆盖安装。
    • 检查 APK 兼容性(API 级别)。
  1. 问题:日志过多难以分析
  • 原因adb logcat 输出所有系统日志。
  • 解决:使用过滤器,如 adb logcat *:Eadb logcat | grep "MyApp".

七、总结

ADB 是 Android 开发和调试的强大工具,支持设备管理、应用安装、文件传输、日志查看等多种功能。掌握常用命令(如 adb devicesadb installadb logcat)和无线调试,可以显著提高开发效率。遵循最佳实践(如配置 PATH、自动化脚本)和注意事项(如检查驱动、确保安全性),能确保 ADB 的可靠使用。对于复杂场景,可结合 scrcpyAppium 等工具进一步扩展功能。

如果你需要更详细的命令示例(如特定场景的脚本、日志分析)或高级用法(如 ADB 结合自动化测试),请告诉我!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注