性能adb命令

启动时间-冷启动
启动App命令
adb shell am start -W -n com.bit_health.android/.ui.common.activities.BitHealthMainActivity
停止App命令
adb shell am force-stop com.bit_health.android

启动时间-热启动
启动App命令(与冷启动一样)
adb shell am start -W -n com.bit_health.android/.ui.common.activities.BitHealthMainActivity
停止App命令
adb shell input keyevent 3

监控包名,actvity名的命令
adb logcat|findstr START
找到的汇康e家包名activity名
com.bit_health.android/.ui.common.activities.BitHealthMainActivity

如何判断启动时间的好坏:
与竞品App的启动进行对比
使用时间戳差值来计算
自动化脚本的实现
1.获取命令执行时间,作为启动时间参考值
2.在命令前后加上时间戳,以差值作为参考值

CPU性能测试
adb shell dumpsys cpuinfo|findstr com.bit_health.android
写一个脚本定时的输出CPU的状态值
监控CPU命令时写一个自动化操作的脚本
CPU状态始终上升或者没有下降...这种CPU状态是不合理的
此时拿着这些数据去给开发提一些建议

流量监控
使用夜神模拟器进行adb连接的方法
跳转到F:sdkandroid-sdk-windowsplatform-tools
执行 adb connnect 127.0.0.1:62001

1.adb shell ps|findstr com.bit_health.android
1.adb shell cat /proc/pid/net/dev

获取到流量值之后主要是与竞品或者之前的版本进行对比
1.与之前版本做相同操作所消耗的流量进行对比
!!新闻类的产品需要做流量监控

电量监控(电量测试时间最好在半个小时到一个小时以上)
获取电量
adb shell dumpsys battery
level表示电量百分比
主要是利用前后变化的两个level值做差,算出电量的一个变化

手机连接usb线之后会进入充电状态,需要切换到非充电状态
切换到非充电状态:
adb shell dumpsys battery set status 1(切换status几都可以只要不是2就行)

内存监控
获取内存
adb shell top -d 1
-d表示命令刷新的频率 -d 1表示1秒钟刷新一次
adb shell top -d 1>meminfo

需要获取两个数值
VSS-Virtual Set Size 虚拟耗用内存
RSS-Resident Set Size 实际使用物理内存
如果在长时间使用之后,内存处在一个稳定、恒定的状态
说明我们的app没有发生内存泄漏
连续测试两个小时之后才能发现问题..
在6M之内的变化可以认为是对app影响不大
如果差值达到了几百M...可以认为app发生了内存泄漏
每一轮测试的内存变化当成一个参考值

FPS&过度渲染
FPS frames per second-每秒的帧数
60帧。。。很流畅
开发者选项中的GPU呈现模式分析
选第二项在屏幕上显示为条形图
图形中的绿线表示fps的基准值16ms
每一个柱形图是每一帧的绘图耗时
如果发现有很多帧的绘图耗时都超过了绿线,表示当时的流畅度出现了问题

过度渲染:描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次
显示GPU过度绘制
颜色过深表示当前UI层数过多
如果发现页面特别卡的时候,可以打开过度绘制进行查看,看哪一部分绘制的元素过多

原文地址:https://www.cnblogs.com/elephantLi/p/6141795.html