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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章