- 启动时间
冷启动:adb shell am start -W -n package/activity
停止app命令:adb shell am force-stop package
获取启动包名:adb logcat|grep START
com.android.browser/.BrowserActivity
热启动:adb shell am start -W -n package/activity
停止App命令:adb shell input keyevent 3
热启动比冷启动节省时间,因为热启动是back键后在后台运行
分别运行冷启动与热启动,对生成的csv数据使用number进行取平均值和生成曲线图进行分析
自动化脚本的实现
获取命令执行时间,作为启动时间参考值
在命令前后加上时间戳,以差值作为参考值
执行时间:
App class:LaunchApp 、StopApp 、 GetLaunchedTime
controller Class:run、cllectAllData、SaveDataToCSV
时间戳差值
APP Class:LaunchApp、StopApp、CalculateTime、TimeBeforeLaunch、TimeAfterLaunch
controller Class:run、cllectAllData、SaveDataToCSV
- CPU
获取数据:adb shell dumpsys cpuinfo|grep packagename
- 流量(版本与版本之间进行对比,或与竞品进行对比)
获取进程ID指令:adb shell ps |grep packagename
获取进程ID流量:adb shell cat proc/pid/net/dev
- 电量
获取电量:adb shell dumpsys battery
切换非充电状态:adb shell dumpsys battery set status 1
使用半个小时或1个小时测试app电量,
- 内存
获取内存:adb shell top
VSS-Vitual set size 虚拟耗用内存
RSS- Resident set size 实际使用物理内存
- FPS:frames per second 每秒的帧数
- 过度渲染(GPU过度绘制)
- 描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次