ADB 测试常用操作指南

一、测试核心操作分类

1. 应用测试
  • 安装/卸载应用

    bash 复制代码
    # 安装应用(覆盖安装使用 `-r`)
    adb install -t app.apk
    
    # 卸载应用(保留数据使用 `-k`)
    adb uninstall com.example.package
    
    # 清除应用数据(模拟首次启动)
    adb shell pm clear com.example.package
  • 启动/停止应用

    bash 复制代码
    # 启动应用主 Activity
    adb shell am start -n com.example.package/.MainActivity
    
    # 强制停止应用
    adb shell am force-stop com.example.package
    
    # 发送广播(如测试接收器)
    adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

2. 日志与调试
  • 实时日志过滤

    bash 复制代码
    # 仅显示某个 TAG 的日志(如过滤崩溃)
    adb logcat -s "TAG_NAME"
    
    # 按优先级过滤(V/D/I/W/E)
    adb logcat *:E    # 仅显示错误日志
    
    # 按关键字搜索日志(如崩溃堆栈)
    adb logcat | grep "NullPointerException"
  • 导出日志到文件

    bash 复制代码
    adb logcat -d > log.txt     # 导出当前日志
    adb logcat -c               # 清空日志缓存

3. 自动化测试(Monkey测试)
  • 随机压力测试

    bash 复制代码
    # 发送 1000 次随机事件(指定包名)
    adb shell monkey -p com.example.package -v 1000
    
    # 限制事件类型(如仅触摸和滑动)
    adb shell monkey --pct-touch 50 --pct-motion 30 -v 500
  • 忽略崩溃/ANR

    bash 复制代码
    adb shell monkey --ignore-crashes --ignore-timeouts -v 1000

4. 性能测试
  • CPU 和内存监控

    bash 复制代码
    # 查看应用 CPU 占用
    adb shell top -n 1 | grep com.example.package
    
    # 查看应用内存占用(单位 KB)
    adb shell dumpsys meminfo com.example.package
    
    # 持续监控性能(每秒刷新)
    adb shell top -d 1
  • 帧率与渲染性能

    bash 复制代码
    # 查看界面渲染帧率(需 Android 4.1+)
    adb shell dumpsys gfxinfo com.example.package
    
    # 统计应用启动时间
    adb shell am start -W -n com.example.package/.MainActivity

5. UI 自动化与交互
  • 模拟用户操作

    bash 复制代码
    # 点击屏幕坐标(需屏幕分辨率)
    adb shell input tap 500 1000
    
    # 滑动操作(起始坐标 + 结束坐标 + 时长)
    adb shell input swipe 300 1000 300 500 200
    
    # 输入文本(需先聚焦输入框)
    adb shell input text "HelloWorld"
    
    # 按键事件(如返回键、Home 键)
    adb shell input keyevent 4      # 4=返回键,3=Home 键
  • 获取当前 Activity 信息

    bash 复制代码
    adb shell dumpsys window | grep mCurrentFocus
  • UI 布局分析(XML Dump)

    bash 复制代码
    adb shell uiautomator dump /sdcard/ui.xml
    adb pull /sdcard/ui.xml         # 导出到本地分析

6. 网络与代理设置
  • 设置全局代理

    bash 复制代码
    adb shell settings put global http_proxy 192.168.1.1:8080
  • 清除代理

    bash 复制代码
    adb shell settings put global http_proxy :0
  • 端口转发(抓包工具如 Charles/Fiddler)

    bash 复制代码
    adb reverse tcp:8080 tcp:8080   # 将设备 8080 映射到 PC 8080

二、多设备操作

  • 指定设备执行命令

    bash 复制代码
    # 列出所有设备序列号
    adb devices
    
    # 指定设备执行命令(-s 参数)
    adb -s 设备序列号 install app.apk
  • 批量操作(需脚本支持)

    bash 复制代码
    # 示例:为所有设备安装 APK
    for device in $(adb devices | grep -v List | awk '{print $1}'); do
      adb -s $device install app.apk
    done

三、高级测试技巧

1. 截图与录屏
  • 快速截图

    bash 复制代码
    adb exec-out screencap -p > screen.png
  • 录制屏幕(最长 3 分钟)

    bash 复制代码
    adb shell screenrecord --bit-rate 4000000 /sdcard/video.mp4

2. 文件管理
  • 查看设备文件结构

    bash 复制代码
    adb shell ls /sdcard/           # 列出目录
    adb shell cat /proc/cpuinfo     # 查看 CPU 信息
  • 强制删除文件(需 Root)

    bash 复制代码
    adb shell su -c "rm -rf /data/local/tmp/test"

3. 设备信息查询
  • 系统版本与硬件信息

    bash 复制代码
    adb shell getprop ro.build.version.release   # Android 版本
    adb shell getprop ro.product.model          # 设备型号
    adb shell wm size                           # 屏幕分辨率

四、常见测试场景示例

  1. 测试应用冷启动速度

    bash 复制代码
    adb shell am force-stop com.example.package
    adb shell am start -W -n com.example.package/.MainActivity
  2. 模拟网络切换(4G/WiFi)

    bash 复制代码
    adb shell svc wifi disable    # 关闭 WiFi(需 Root)
    adb shell svc data enable     # 开启移动数据(需 Root)
  3. 测试低电量场景(需 Root)

    bash 复制代码
    adb shell dumpsys battery set level 15   # 设置电量 15%
    adb shell dumpsys battery reset          # 恢复实际电量

五、注意事项

  1. Root 权限:部分命令需设备已 Root(如修改系统文件)。
  2. Android 版本差异 :某些命令在不同 Android 版本中可能行为不同(如 dumpsys 输出格式)。
  3. 安全限制 :Android 11+ 对访问 /data 目录有更严格限制。
相关推荐
fatiaozhang95271 小时前
晶晨S905L3A(B)-安卓9.0-开启ADB和ROOT-支持IPTV6-支持外置游戏系统-支持多种无线芯片-支持救砖-完美通刷线刷固件包
android·游戏·adb·华为·电视盒子·机顶盒rom·魔百盒固件
haoshuai_6 小时前
第二次作业
android·adb
IEVEl7 小时前
CentOS 7安装 mysql
mysql·adb·centos
casual_clover13 小时前
Android 设备实现 adb connect 连接的步骤
android·adb
热爱编程的小曾1 天前
sqli-labs靶场 less 7
android·adb·less
weixin_391336901 天前
gdb 调试mysql
android·mysql·adb
肆仙.2 天前
单表、多表查询练习
android·adb
小李小李快乐不已2 天前
3.1.3 MYSQL连接池
数据库·mysql·adb
冲浪中台2 天前
MySQL 的 JSON 路径格式
mysql·adb·json
Free飝Fly3 天前
Android R adb remount 调用流程
android·adb·remount