ADB(Android Debug Bridge) — 是一个多功能的控制台实用程序,是 Android SDK 的一部分。它允许计算机通过 USB 数据线或 Wi-Fi 直接与 Android 设备交互。使用 ADB 可以安装和卸载应用程序、复制文件、运行 shell 命令、查看系统日志、截屏和录屏、管理设置,甚至执行自动化测试。该工具对于希望完全控制设备的开发人员、测试人员和爱好者来说是不可或缺的。
要点
Android Debug Bridge(ADB) — 是一个客户端-服务器应用程序,由三个组件组成:客户端(在计算机上运行)、服务器(计算机上的后台进程)和 adbd 守护进程(在 Android 设备本身上运行)。当开发人员或工程师将智能手机连接到 PC 时,ADB 会创建一个可靠的通信通道,可以通过该通道传输命令、文件和数据。
ADB 的主要使用场景包括:在真实设备上调试应用程序而无需在商店中发布 APK、提取日志以分析错误、自动化测试、数据备份、刷写 recovery 映像以及获取 root 访问权限。即使您不编写代码,ADB 也可用于从应用程序中提取屏幕截图、录制手机屏幕视频指南或在刷写失败后恢复设备。
ADB 支持内置于从版本 2.1(API 7)开始的所有官方 Android 版本中。使用需要在开发者设置中启用「通过 USB 调试」选项。从 Android 4.2 开始,在首次连接时,设备会要求确认:需要根据其 RSA 密钥允许特定计算机进行调试。
对于 Windows — 从 Google Developers 官方网站下载 Platform Tools,将存档解压到 C:\adb 文件夹,并将此路径添加到 PATH 环境变量中。重启终端后,adb 命令将全局可用。
对于 macOS — 最简单的方法是通过 Homebrew 包管理器安装 ADB:执行 brew install android-platform-tools。所有依赖项将自动解决。
对于 Linux — 在基于 Debian / Ubuntu 的发行版中:sudo apt install adb。安装后,将用户添加到 plugdev 组:sudo usermod -aG plugdev $USER 并重新登录,以便 ADB 获得对 USB 设备的访问权限。
可以使用 adb version 命令检查安装是否正确。如果输出中显示 Android Debug Bridge 版本号,则该工具已准备就绪。
首次连接始终从 adb devices 命令开始。它会显示已连接设备的列表及其状态。如果设备显示为 unauthorized,请解锁屏幕并在手机上确认调试。
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
安装应用程序 — 最常见的操作之一。只需指定 APK 文件的路径:
adb install C:\apps\myapp.apk
如果应用程序已安装但需要用更新版本替换,请添加 -r(替换)标志:
adb install -r C:\apps\myapp-v2.apk
卸载应用程序按包名进行:
adb uninstall com.example.myapp
复制文件 — adb pull 从设备提取文件到计算机,adb push 将文件上传到设备:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
交互式 shell — adb shell 命令打开设备的命令 shell。在其中可以执行标准 Linux 命令:ls、ps、top、dumpsys、pm、am 等。
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
通过 ADB 启动 Activity 允许打开任何应用程序或屏幕,而无需手动搜索图标:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat — 是 Android 的日志记录系统,收集来自应用程序、系统服务和内核的消息。该工具在调试时不可或缺:通过日志可以了解应用程序崩溃的原因、哪个方法引发了异常或特定操作持续多长时间。
无过滤器简单启动 — adb logcat。日志流是无限的,按 Ctrl+C 停止。要按标签过滤消息,请使用 -s 参数:
adb logcat -s MainActivity:V
日志记录的重要性级别(从最详细到最严重):V(详细)、D(调试)、I(信息)、W(警告)、E(错误)、F(严重)。标签和级别的组合可以只提取所需的消息。
在测试前清除累积的缓冲区:
adb logcat -c
将日志保存到文件:
adb logcat -d > app_logs.txt
-d(转储)标志显示当前缓冲区并在不阻塞终端的情况下结束。这对于自动化脚本很方便。
截屏使用 adb shell screencap 命令完成。结果保存到文件中,然后通过 adb pull 提取:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
可以使用替换和管道将两个操作合并到一行中。在实践中,这加速了文档和测试报告的创建。
录屏在 Android 4.4+(API 19)上可用。默认录制时长 — 180 秒,比特率 — 4 Mbit/s。主要命令:
adb shell screenrecord /sdcard/demo.mp4
按 Ctrl+C 停止录制。视频分辨率与设备屏幕分辨率对应,但不超过 1080p。要更改比特率,请指定 --bit-rate:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
诊断命令:adb shell dumpsys 显示所有系统服务的状态。要仅获取电池信息:
adb shell dumpsys battery
已安装包列表可以通过 Package Manager 获取:
adb shell pm list packages
重置应用程序设置(相当于在设置中清除数据):
adb shell pm clear com.example.myapp
Wi-Fi 调试消除了需要将设备通过 USB 保持连接的不便。确保计算机和设备在同一网络中。首先执行 adb tcpip 5555,断开 USB,然后通过 IP 连接:
adb tcpip 5555
adb connect 192.168.1.100:5555
如果设备 IP 地址未知,请在断开电缆之前通过 adb shell ip addr show wlan0 查找。
数据备份应用程序或整个系统无需 root 即可完成:
adb backup -apk -shared -all -system -f mybackup.ab
从备份恢复:
adb restore mybackup.ab
输入模拟 — adb shell input 命令允许模拟触摸、滑动、按键和文本输入。这是在无需额外框架的情况下自动化 UI 测试的基础:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
在不同模式下重启:
adb reboot # 正常重启
adb reboot recovery # 恢复模式
adb reboot bootloader # 引导加载程序(fastboot)
Fastboot 模式可以刷写映像、解锁引导加载程序和安装自定义 recovery。
当同时连接多个设备或模拟器时,ADB 需要指定特定的序列号。adb devices 命令显示所有已连接的设备及其序列号。
要将命令定向到特定设备,请使用 -s 标志:
adb -s 0123456789ABCD install myapp.apk
如果只有一个设备,可以不用标志。但在 CI 环境中,同时运行多个模拟器时,指定序列号是必须的。
杀死 ADB 服务器 — 如果设备停止被检测到或报错,重启服务器会有所帮助:
adb kill-server
adb start-server
之后执行 adb devices — 服务器将重新启动并将请求转发到设备守护进程。
| 命令 | 描述 |
|---|---|
| adb devices | 显示已连接设备的列表 |
| adb install |
安装 APK 文件到设备 |
| adb uninstall |
按包名卸载应用程序 |
| adb shell | 启动交互式命令 shell |
| adb push |
复制文件从计算机到设备 |
| adb pull |
复制文件从设备到计算机 |
| adb logcat | 查看系统和应用程序日志 |
| adb shell screencap | 创建屏幕截图 |
| adb shell screenrecord | 录制屏幕视频 |
| adb reboot | 重启设备 |
| adb tcpip 5555 | 将 ADB 切换到 TCP/IP 模式用于 Wi-Fi |
| adb connect |
通过 Wi-Fi 连接到设备 |
常见问题
打开「设置」→「关于手机」,点击「版本号」7 次。返回设置主菜单 — 将出现「开发者选项」部分。在其中启用「USB 调试」。从 Android 4.2 开始,首次连接到计算机时,需要在设备屏幕上确认 RSA 调试密钥。
设备不信任计算机。解锁手机屏幕,当出现「允许 USB 调试吗?」对话框时,勾选「始终允许此计算机」并点击「确定」。如果对话框不出现,请断开并重新连接 USB 数据线,或执行 adb kill-server && adb start-server。
ADB 不需要与屏幕交互。通过 USB 连接设备,等待它出现在 adb devices 中(如果调试已启用),然后执行 adb install
ADB 直接安装 APK,绕过安装期间的 Google Play Protect 检查,这允许在发布前测试应用程序。但是,最终恶意代码检查在安装后仍然会运行。ADB 不需要 Google 帐户,这对于企业信息亭和没有 Google 服务的设备很重要。
是的,绝大多数 ADB 命令无需 root 即可工作。例外情况是需要访问受保护系统分区的命令(例如,直接转储 boot 分区或修改系统文件)。对于日常任务 — 安装应用程序、日志记录、截屏、备份、输入模拟 — 不需要 root。
ADB(Android Debug Bridge) — 是所有在专业水平上使用 Android 的人的基础工具。从基本的应用程序安装到复杂的测试自动化和设备恢复 — ADB 涵盖了计算机与智能手机或平板电脑交互的几乎所有场景。
掌握本文中描述的命令后,您将能够自信地通过终端管理 Android 设备、分析日志、为文档截屏、进行备份并加快开发过程。定期练习和研究 adb help 的输出将使您成为这个强大工具的经验丰富的用户。
总结
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。