应用启动分为三种状态,每种状态都会影响到应用程序对用户的可见时间,分别是温启动、热启动、冷启动(谷歌在优化启动的时候也是主要针对于冷启动)
冷启动
冷启动是指应用程序(此处的应用程序是指我们的APP,后面一样)从头开始,系统的进程在此之前没有创建应用程序的进程,冷启动发生的时机就是首次启动APP的时间,是一个从无到有的状态
冷启动开始时,系统有三个任务:
- 加载并启动APP
- 启动后立即显示应用程序的空白启动窗口 (划重点,这个地方要优化的)
- 创建应用程序进程
创建完成了应用程序后,应用程序会负责下一阶段的任务 - 创建应用程序对象(application部分)
- 启动主线程
- 创建main activity(就是我们的第一个启动的页面)
- 加载试图
- 布局屏幕
- 执行初始化绘制
完成上述操作后,系统进程会交换当前显示的背景窗口,将其替换成main activity的页面,这个时候用户就可以进行操作了,下图是冷启动的直观表示
用户在看到页面完全展示出来的时机为main Activity的onResume的时候,那么我们就应该去考虑在此之前会存在哪些耗时的地方,首先是初始化的白屏、Application的onCreate()ÿ