Android App性能之--启动时间
App启动时间的包括首次安装启动时间、冷启动时间、热启动时间3种
启动时间的采集方式均通过如下adb命令
#命令行输入命令:
adb shell am start -W -n packageName/ActivityName
#结果如下
Status: ok
Activity: packageName/activityName
ThisTime: 1298
TotalTime: 1298
WaitTime: 1308
Complete
1)首次安装启动
首次安装后,需要做资源初始化操作,因此,如果需要采集这个值,就需要在App安装后执行上述命令
2)冷启动
冷启是后台进程被关闭时启动App所需的时间,关闭进程可以在手机端滑动关闭(各个手机操作略有差异)也可以通过adb命令(参考如下)
adb shell am force-stop packageName
3)热启动
热启动是不关闭进程,比如按home键或者adb命令(参考如下)返回系统主界面,但App进程仍在后台运行
adb shell input keyevent 3
输出结果有三个值,thisTime,totalTime,waitTime.
thisTime(最后一个activity启动耗费时间)=curTime-displayStartTime(一连串启动Activity中的最后一个Activity的启动时间点)
totalTime=mlaunchStartTime(一连串页面中第一个activity启动时间,可能无界面)!=0?curTime-mlaunchStartTime:thisTime
waitTime=endTime(系统调用startActivityAndWait完成时间点)-startTime(系统调用startActivityAndWait开始时间点)
也可以说:
waitTime=initTime(系统初始化的一些工作,ActivityManagerService创建ActivityRecord记录块和选择合理的Task、将当前Resume的Activity进行pause)+totalTime
也就是说应用启动总耗时应该是waitTime,但是initTime这个时间段内我们没有太多优化空间,所以我们可能更关注totalTime