一、测试核心操作分类
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 # 屏幕分辨率
四、常见测试场景示例
测试应用冷启动速度
adb shell am force-stop com.example.package adb shell am start -W -n com.example.package/.MainActivity
模拟网络切换(4G/WiFi)
adb shell svc wifi disable # 关闭 WiFi(需 Root) adb shell svc data enable # 开启移动数据(需 Root)
测试低电量场景(需 Root)
adb shell dumpsys battery set level 15 # 设置电量 15% adb shell dumpsys battery reset # 恢复实际电量
五、注意事项
- Root 权限:部分命令需设备已 Root(如修改系统文件)。
- Android 版本差异:某些命令在不同 Android 版本中可能行为不同(如
dumpsys
输出格式)。 - 安全限制:Android 11+ 对访问
/data
目录有更严格限制。