Android 测试入门指南:ADB 基础配置与常用设备管理命令解析

摘要:对于 Android 软件测试人员而言,ADB (Android Debug Bridge) 是一项基础且实用的工具。它充当了计算机与 Android 设备之间的桥梁,在自动化测试、性能监控及应用管理等场景中均有应用。本文将系统地梳理 ADB 的核心概念、环境搭建、常用设备管理命令,并结合 Monkey 测试进行初步拓展,帮助大家在日常工作中建立起清晰的知识框架。


一、 ADB 工具简介

ADB(Android Debug Bridge)是一种多功能的命令行工具,允许计算机与连接的 Android 设备(或模拟器)进行通信。无论是应用日常测试、日志抓取还是自动化脚本执行,ADB 都是较为常用的辅助工具。

1.1 ADB 的常见应用场景

在测试流程中,ADB 的应用主要体现在以下几个方面:

  • 辅助自动化测试 :通过执行 adb shell 命令,可以模拟点击、滑动、输入文本等用户操作,为 UI 自动化测试提供底层支持。
  • 日常测试准备:实现应用的安装、卸载、覆盖升级、数据清理以及文件在电脑与设备之间的传输。
  • 专项与稳定性测试 :采集设备的关键性能指标(如 CPU、内存占用、FPS 等),抓取系统日志进行问题定位,以及利用内置的 Monkey 工具开展稳定性压力测试。

1.2 ADB 环境搭建步骤

搭建稳定可用的 ADB 环境是进行后续操作的前提,具体步骤如下:

  1. 工具获取

    • 建议前往 Android 开发者官网 下载最新版的 platform-tools 工具包。
    • 若已安装完整的 Android Studio,其 SDK 路径下也默认包含此工具。
  2. 路径配置

    • 将下载的 platform-tools 压缩包解压至本地目录(建议路径中避免包含中文或空格)。
    • 配置环境变量 :将该文件夹的绝对路径添加到系统的 Path 环境变量中。配置完成后,便可在任意路径下的命令行(CMD 或 PowerShell)中直接调用 adb 命令。
  3. 安装验证

    • 打开命令行窗口,输入以下命令:
    bash 复制代码
    adb --version
    • 若系统正确返回 Android Debug Bridge 的版本信息,即代表环境配置完成。

二、 ADB 核心设备管理命令

掌握常用的设备管理命令,能够帮助我们更高效地进行日常测试环境的管理。

2.1 查看已连接设备 (adb devices)

该命令用于检测当前计算机连接了哪些 Android 设备或模拟器。

  • 命令格式

    bash 复制代码
    adb devices
  • 输出内容示例

    List of devices attached

    emulator-5554 device

    RX8M81QL7MJ device

    192.168.1.5:5555 offline

  • 状态解读

    • device:设备已成功连接且已授权,可以正常接收 ADB 指令。
    • offline:连接存在异常,或设备未完成 USB 调试授权。建议尝试重新插拔数据线或在手机端确认授权。
    • unauthorized:设备已连接,但尚未通过授权。需在手机屏幕弹出的"允许 USB 调试"提示框中点击"允许"。

2.2 管理 ADB 服务 (start-server / kill-server)

当遇到设备无法识别、连接无响应或端口冲突等常见问题时,重启 ADB 服务通常是较快的排查手段。

  • 命令格式

    bash 复制代码
    # 停止 ADB 服务
    adb kill-server
    
    # 启动 ADB 服务
    adb start-server
  • 适用场景

    • adb devices 列表未能正确显示已连接的设备。
    • 调试过程中出现连接超时或无响应。
    • 通常可组合执行:先执行 kill-server,随后直接运行 adb devices(系统会自动触发 start-server)。

2.3 手动连接/断开设备 (connect / disconnect)

除了常规的 USB 连接外,ADB 还支持通过网络(Wi-Fi)进行无线连接,这在管理远程设备或运行模拟器时较为常用。

  • 命令格式

    bash 复制代码
    # 连接指定 IP 及端口的设备(需确保电脑与设备在同一网络段)
    adb connect <设备IP>:<端口>
    
    # 示例:连接本地模拟器
    adb connect 127.0.0.1:5555
    
    # 断开指定网络设备的连接
    adb disconnect <设备IP>:<端口>
    
    # 断开所有已连接的网络设备
    adb disconnect

三、 ADB 核心设备管理命令

命令分类 ADB 命令 功能说明 / 应用场景
设备管理 adb devices 查看当前已连接的所有设备及授权状态
adb kill-server 停止 ADB 服务(常用于解决设备连接无响应等异常)
adb start-server 启动 ADB 服务
adb connect <IP>:<端口> 通过网络(Wi-Fi)无线连接指定设备 / 模拟器
adb disconnect <IP>:<端口> 断开指定的网络设备连接
多设备操作 adb -s <设备序列号> <指令> 当连接多台设备时,指定目标设备执行特定指令
应用管理 adb install <APK路径> 安装本地 APK 软件包至目标设备
adb install -r <APK路径> 保留数据和缓存文件,覆盖安装/更新应用
adb uninstall <应用包名> 卸载目标设备上的指定应用
adb shell pm list packages 列出设备上安装的所有应用包名
adb shell pm clear <应用包名> 清除指定应用的所有数据与缓存
文件传输 adb push <电脑路径> <设备路径> 将电脑上的文件传输至 Android 设备
adb pull <设备路径> <电脑路径> 将 Android 设备上的文件下载至电脑
日志与调试 adb logcat 抓取并实时输出 Android 系统的运行日志
adb logcat -c 清空当前设备缓存的日志
adb bugreport 导出详细的系统调试与诊断报告
系统与交互 adb shell 进入 Android 系统的 Linux Shell 交互命令行
adb shell screencap <设备路径> 对当前设备屏幕进行截图并保存到指定路径
adb shell screenrecord <设备路径> 录制设备屏幕操作(通常最高支持 3 分钟)
adb shell dumpsys activity top 获取当前处于前台(栈顶)的 Activity 信息

四、 ADB 命令使用注意事项

  1. 大小写敏感 :ADB 命令及其参数严格区分大小写。例如,adb devices 为正确格式,而 ADB Devices 将无法被系统识别。

  2. 环境变量生效问题:若提示"'adb' 不是内部或外部命令",请重新检查 Path 变量配置,并尝试重启命令行窗口以应用配置。

  3. 设备授权确认:首次连接新设备时,请务必关注手机屏幕上的弹窗提示,并勾选"一律允许来自这台计算机的调试"。

  4. 多设备选择(-s 参数) :当电脑同时连接多台设备时,直接运行通用命令会引发报错。此时需要通过 -s 参数指定具体的目标设备序列号:

    bash 复制代码
    # 使用 -s 参数指定为特定设备安装应用
    adb -s emulator-5554 install app-debug.apk

五、 延伸拓展:Monkey 稳定性测试简介

在日常测试工作中,保障 APP 的稳定性是一项重要任务。利用 ADB,我们可以方便地调用 Android 系统内置的 Monkey 工具进行压力与稳定性测试。

5.1 什么是 Monkey 测试?

Monkey 是运行在模拟器或真机中的一个程序,它能够产生伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),以此来对正在开发的测试软件进行压力测试,观察应用是否会发生崩溃(Crash)或无响应(ANR)。

5.2 常用命令与配置

通过 ADB 启动 Monkey 测试时,可以根据需求配置事件数量、发生频率以及特定的包名。

  • 基础执行命令

    bash 复制代码
    # 对指定应用包发送 1000 个伪随机事件
    adb shell monkey -p com.example.myapp -v 1000

5.3 异常结果分析

在 Monkey 测试执行过程中或执行完毕后,我们需要重点关注终端输出的日志。常见的异常现象包括:

  • Crash(崩溃):程序因未捕获的异常而被迫停止运行。
  • ANR(Application Not Responding,应用无响应):通常是由于主线程被阻塞导致的,可以通过分析系统的 trace 文件定位原因。

六、 总结

熟练掌握 ADB 的基础设备管理命令,能够为日常测试工作打下良好的技术底座。本文梳理的 deviceskill/start-serverconnect/disconnect 等命令,是开展后续高级测试的基础。

在接下来的文章中,我们将继续探讨关于 应用管理、文件传输、系统日志抓取、性能数据监控 等进阶指令的使用,希望能对大家的工作有所助益。

相关推荐
gxgldyh3 小时前
Android Framework源码解析(七):BootAnimation 启动流程解析——开机动画是如何显示出来的?
android
达达尼昂4 小时前
在 Claude Cowork 中用好 Claude Fable 5
android·人工智能·后端
sTone873754 小时前
写时复制COW的第一性理解
android·c++·flutter
sTone873754 小时前
Zygote的第一性理解
android
sTone873754 小时前
类RN框架通过Service暴露卡片渲染能力给AI Chat
android·react native
灯火不休4 小时前
Android Studio & Flutter 构建命令完全指南
android
杉氧4 小时前
Ktor 全栈之路 (5):JWT 认证全流程实战 —— 打造安全通信闭环
android·架构·kotlin
️学习的小王5 小时前
Python + MySQL 学生信息管理系统实战教程
android·python·mysql
帅次5 小时前
Android 高级工程师面试:Flutter 路由导航 近1年高频追问 18 题
android·flutter·面试