1.什么是冷启动
冷启动的定义:
冷启动就是在启动应用前,系统中没有该应用的任何进程信息。
冷启动和热启动的区别:
热启动是用户使用返回键退出应用,然后马上又启动应用。
热启动因为是从已有的进程中启动,所以不会走application类。
3.冷启动的时间
这个时间值从应用启动(创建进程)开始计算,到完成视图的第一次绘制(即activity内容对用户可见)为止。
二。冷启动的流程
1.Zygote进程中fork创建出一个新的进程。
2.创建和初始化Application类,创建MainActivity类。
3.inflate布局,当oncreate,onstart,onresume方法都走完后会走第4个
4.contentview的onmeasure,onlayout,draw显示在界面上。
总结下,首先,他会走Application的构造方法 ->attachBaseContent()方法 ->oncreate()方法 ->
Activity的构造方法 -> onCreate() ->配置主题中的背景等属性 ->onStart() - > onResume ->测量布局绘制显示在界面上。
三。如何进行冷启动的优化
1.减少onCreate()方法的工作量
2.不要让Application参与业务的操作。
3.不要在application中进行耗时的操作。
4.不要以静态变量的方式在Application中保存数据。
因为静态变量他的生命周期和APP是一样的。
所以他会造成很多问题。比如内存泄漏。比如说数据的安全。
5.布局优化,减少布局的复杂性。