一、 问题描述
目前市面上很多安卓应用存在一个问题,就是应用启动后要么会黑屏较长一段时间,要么会启动一个广告页或导航页,并且加载较长时间,这是一种相当不好的用户体验,应该予以改进。
二、 改进方法
改进启动和加载速度能很大程度提升用户体验,对于启动时间每个用户的忍耐程度不同,对我而言,如果时间超过1.5秒对应用的粘度会下降一半,也就是删除应用的概率也会提升50%,因此改进启动速度非常重要。改进方法较多,我将这些方法大致分类,并根据自己的开发实践加以陈述。
1. 只做必要的事
启动时间一刻千金,我们的每一个操作都应该分秒必争,一定要把启动过程中做的每一件事都分析清楚,是否一定要在启动时去做,把所有启动时间都留给必要的事。如果一定想要把一些不是很必要的任务也放在启动时去执行,可以把他们放在一个子线程中去执行。
举个简单的例子来区分是否是必要任务。MainActivity加载一个Fragment,有两个Fragment可以选择,Fragment1和Fragment2,这时需要通过从SharePreference中获取一个值来判断加载哪个Fragment,这种任务(从SharePreference中获取一个值)直接涉及到主UI的加载,只能在UI线程中执行,属于必要任务,所以应该在启动时做。
但是,如果要在Fragment加载完成后,根据SharePreference中获取的另一个值来判断是否加载一个Dialog,此时因为主UI已经加载完成,是否加载该Dialog已经不是必要任务,因此该任务(SharePreference中获取的另一个值)可以放在子线程中执行