阅读 55

Android调试App之专项测试

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

App专项测试说明

这里说的专项测试,是从app方面考虑,如网络环境、占用硬件资源等;
从而衍生出app应用在设备呈现的兼容性测试、性能测试(CPU、内存、流量等)

复制代码

安装并配置adb环境

下载地址:https://www.androiddevtools.cn,选中Android SDK工具
-->sdk tools:包含有我们需要的uiautomatorviewer程序,定位app-ui元素
-->SDK Platform-Tools,其中包含我们需要用到的adb、monkeyrunner等命令

复制代码

介绍adb命令基本操作

adb环境检查
adb start-server/kill-server  启动/杀死adb服务<基本不用>
adb version 查看adb版本号
adb shell 进入客户端shell交互模式,类似进入linux虚拟机

adb devices  检查设备是否连接及状态
tips: 执行adb devices的逻辑会先判断adb服务是否起来,否则会自动启动,

adb get-state 查看设备状态
tips:1、进入shell之后的系统与linux命令操作基本无异
     2、设备有3种状态,device:正常连接,offline:设备连接异常,无响应,unknown:没有连接设备

复制代码
日志 && 文件操作
查看命令:adb logcat [option] [filter-specs] 或 adb shell logcat
暂停录制:CTRL + C
- adb shell logcat -v time    # 日志输出带有时间戳
- adb shell logcat -v time >D:\test.txt 
  # 将日志写入test.txt文件内,并存入D盘根目录
  # 帮助信息:adb logcat --help

文件操作:
1、adb shell直接进入目录系统操作,支持pwd、ps、mkdir、ls等基本命令
2、adb pull remote local 从设备下载文件到本地,需要知道设备文件的绝对路径
3、adb push local remote 上传本地文件到设备机,需要知道设备的文件夹路径或根目录

复制代码
App应用操作:安装/卸载
安装应用:adb install -r D:\test-app.apk
tips:
 -l:将应用安装到保护目录 /mnt/asec
 -r:允许覆盖安装
 -t:允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用
 -s:将应用安装到 sdcard
 -d:允许降级覆盖安装
 -g:授予所有运行时权限

注意点:1、该命令需PC指定路径有对应apk文件,即apk绝对路径
        2、执行命令后,无-r参数,需手动点击设备确认安装,应用没卸载需要手动确认
操作原理:
 1、push apk 文件到 /data/local/tmp。
 2、调用 pm install 安装。
 3、删除 /data/local/tmp 下的对应 apk 文件。
命令如下:adb shell pm install (目标 apk 存放于 Android 设备上,是用pm install 安装)
 
卸载应用:adb uninstall [-k] <package-name>
-k 参数可选,表示卸载应用但保留数据和缓存目录
tips:
1、是包名,非app名称,如:com.tencent.mobileqq
2、adb shell pm uninstall (同 adb uninstall , 后面跟的参数都是应用的包名)

复制代码
清除App缓存:
命令:adb shell pm clear <package-name>

复制代码
查看当前应用及Activity
命令:adb shell dumpsys window | findstr "mCurrentFocus"

复制代码
查看应用详细信息
命令:adb shell dumpsys package <package-name>

复制代码
查看应用安装路径
命令:adb shell pm path <package-name>

复制代码
启动应用命令
命令:adb shell am start -W package_name/.MainActivity
tip:从而获取启动应用的时间

复制代码
停止/退出应用
命令:adb shell am force-stop <packagename>

复制代码
查看Android设备系统信息
生产厂商:adb shell getprop ro.product.brand
系统版本:adb shell getprop ro.build.version.release
设备型号:adb shell getprop ro.product.model
电池状况:adb shell dumpsys battery
设备分辨率:adb shell wm size
屏幕密度:adb shell wm density
设备IMEI:adb shell dumpsys iphonesubinfo
Android id:adb shell settings get secure android_id
CPU 信息:adb shell cat /proc/cpuinfo
内存信息:adb shell cat /proc/meminfo


复制代码
其他专项测试命令
❑ 获取内存信息:
adb shell dumpsys meminfo <进程id>
❑ 获取CPU消耗信息:
adb shell top -n 1 |find “进程名”
❑ 获取电量信息:
adb shell dumpsys battery
❑ 获取GPU信息:
GPU信息命令:adb shell dumpsys gfxinfo <进程名>
❑ 获取流量信息:
adb shell cat/proc/uid_stat/<被测应用的uid>/tcp_rcv

tips:如何获取被测应用的UID
步骤1:查看被测应用的进程ID(PID)
adb shell ps -ef | grep <被测应用包名>
步骤2:查看被测应用的用户ID(UID)
adb shell cat /proc/$pid/status


复制代码
文章分类
后端