冷启动
冷启动是从系统从没有任何app进行的信息,到第一个页面显示出来,
1、Zygote进行中fork创建一个新的进程
2、创建和初始化Application类,创建MainActivity类
3、setContentView方法会执行inflate布局,onCreate/OnStart、OnResume
4、contentView的measure/layout/draw显示在界面上
冷启动执行的生命周期
Application的构造方法->attachBaseContext方法->onCreate方法->Activity的构造方法->onCreate方法->配置主题中的背景灯属性->onStart->onResume->测量布局绘制在界面上
优化冷启动
冷启动走的过程是必不可少的,所以我们能做的工作就是尽量少执行任务
1、减少Application中OnCreate方法的工作量,如果这里加载第三方库的话,可以进行懒加载(如果可以的话),需要的时候再去加载
2、不要在Application中进行微耗时工作
3、初始化的工作可以放在子线程或者延迟做
4、第一个Activity可以减少布局层次,尽量简单些