定义
从用户点击应用快捷图标到用户在手机屏幕上看到onCreate的setContentView中设置的layout完全显示为止,也即我们常说的应用的第一帧
应用启动的分类
- 冷启动,即应用第一次启动,这时候应用程序的进程是没有创建的。
- 热启动,应用非第一次启动,应用进程未被杀掉,只需要启动一个Activity即可。
获取应用启动的方法
adb shell am start -W package包名/activity名
adb shell am start -W com.snowdream.example/com.snowdream.example.MainActivity
//输出:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.snowdream.example/.MainActivity }
Status: ok
Activity: com.snowdream.example/.MainActivity
ThisTime: 3468
TotalTime: 3468
WaitTime: 4015
Complete
- ThisTime:表示一连串启动Activity的最后一个Activity的启动耗时,当桌面图标启动的第一个Activity就是界面Activity时和TotalTime相等;
- TotalTime:表示新应用启动时的耗时,包括新进程的启动和Activity的启动,但不包括前一个应用Activity pause的耗时。这个时间才是应用的真正启动的耗时;
- WaitTime:就是总的耗时,包括前一个应用Activity pause的时间和新应用启动的时间。
总结
- 一般的非游戏类应用的启动耗时就是TotalTime;
- 开发中需要注意将应用的启动时间作为一个性能指标。