ADB 测试常用操作指南

发布于:2025-03-26 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、测试核心操作分类

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

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

    # 启动应用主 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. 日志与调试
  • 实时日志过滤

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

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

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

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

    adb shell monkey --ignore-crashes --ignore-timeouts -v 1000
    

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

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

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

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

    # 点击屏幕坐标(需屏幕分辨率)
    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 信息

    adb shell dumpsys window | grep mCurrentFocus
    
  • UI 布局分析(XML Dump)

    adb shell uiautomator dump /sdcard/ui.xml
    adb pull /sdcard/ui.xml         # 导出到本地分析
    

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

    adb shell settings put global http_proxy 192.168.1.1:8080
    
  • 清除代理

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

    adb reverse tcp:8080 tcp:8080   # 将设备 8080 映射到 PC 8080
    

二、多设备操作

  • 指定设备执行命令

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

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

三、高级测试技巧

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

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

    adb shell screenrecord --bit-rate 4000000 /sdcard/video.mp4
    

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

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

    adb shell su -c "rm -rf /data/local/tmp/test"
    

3. 设备信息查询
  • 系统版本与硬件信息
    adb shell getprop ro.build.version.release   # Android 版本
    adb shell getprop ro.product.model          # 设备型号
    adb shell wm size                           # 屏幕分辨率
    

四、常见测试场景示例

  1. 测试应用冷启动速度

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

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

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

五、注意事项

  1. Root 权限:部分命令需设备已 Root(如修改系统文件)。
  2. Android 版本差异:某些命令在不同 Android 版本中可能行为不同(如 dumpsys 输出格式)。
  3. 安全限制:Android 11+ 对访问 /data 目录有更严格限制。

网站公告

今日签到

点亮在社区的每一天
去签到