一、App启动分类
1、冷启动
App在后台被清除或者第一次启动时,此启动方式,从点击应用图标到显示界面会经历以下过程:
2、暖启动
3、热启动
这两种启动一般不会出现较长的白屏时间,这里不做考虑,也可以参考冷启动优化方式。
二、白屏时间主要影响因素
1、设备性能
2、App的进程个数
3、白屏的Total Time : Application的onCreate()执行时间 + Activity的onCreate()执行时间
对于一个大型的App来说,通常会把相关的第三方SDK的初始化置于Application的onCreate()方法中。
三、解决办法
1、由于白屏总时间等于Application的onCreate()执行时间 + Activity的onCreate()执行时间,所以不要在这两处方法中进行耗时操作,可以将其推后执行或放在子线程中执行。
2、对于多进程的应用来说,每新建一个进程就会初始化Application一次,即会执行Application的onCreate()方法多次,所以将只需要在主进程中初始化的方法推后至Activity的onCreate()中执行。对于只在特定进程中需要初始化的部分方法,可以在Application的onCreate()方法中依据进程名去判断是否需要执行初始化。
3、如果在初始化过程中需要读取自定义Prop配置文件或者SharedPref缓存,若配置较