一、应用的启动方式及过程:
应用的启动分为冷启动、热启动、温启动,其中冷启动是最慢的。
以下是应用冷启动的启动过程:
- 加载启动App;
- App启动之后立即展示出一个空白页;
- 创建App的进程;
- 创建App对象;
- 启动Main Thread;
- 创建启动的Activity对象;
- 加载View;
- 布置屏幕;
- 进行第一次绘制;
当在App启动之后立即展示出一个空白页,这个空白大概在1~2秒,然后再跳转到App的正常界面,这种闪白对用户的体验度是有影响的,没有点击桌面Icon立即响应的用户体验。另一方面,在实际开发中根据需求可能会依赖多个第三模块,这些第三模块一般会在创建App对象Application中进行初始化动作。这些初始化动作是比较耗时的,给用户的直接反馈是,停在启动界面时间过长,体验卡顿。
为此Google也给出了启动优化的三个方向:
- 利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验;
- 避免在启动时做密集沉重的初始化(Heavy app initialization);
- 定位问题:避免I/O操作、反序列化、网络操作、布局嵌套等。
二、 利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验的实现方案;
<1、在drawable文件夹下,创建一个start_activity_background.xml文件;