针对冷启动的时候的一些耗时,如果项目稍微大一些,在Application中配置了更多的初始化操作,这样可能达到1s,这样每次启动都会感觉到明显的延迟,所以在进行初始化的时候采取如下措施:
1、在Application构造器方法、attachBaseContext()、onCreate()方法中不要进行具有耗时操作的初始化,一些数据预取放在异步线程中,可以采取Callable实现。
2、对于sp的初始化,因为sp的特性在初始化的时候会对数据全部读出来存在内存中,所以这个数据化放在主线程中不合适,反而会延迟应用的启动速度,对于这个还是要放在异步线程中处理。
3、对于MainActivity由于在获取到第一帧之前,需要对contentView进行测量布局绘制操作,尽量减少布局的层次,考虑StubView的延迟加载策略,当然在onCreate、onStart、onResume方法中避免做耗时操作。
遵循上面三种策略可明显提高app启动速度。