Android性能优化--Android启动页优化

App启动方式:

(1)冷启动:当启动应用时,后台没有该应用的进程,系统会重新创建一个新的进程分配给该应用,即冷启动。
(2)热启动:当启动应用时,后台已有该应用的进程(点击Back键或Home键退出,此时应用的进程依然在后台存活),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,即热启动。

启动APP时出现白屏或黑屏:

其实,黑屏或者白屏这里并不是不正常,而是还没加载到布局文件,就已经显示了window窗口背景,而在应用程序进程创建并初始化成功之前,系统会显示一个临时窗口Starting Window(也称作:Preview Window,它的WindowType是TYPE_APPLICATION_STARTING;在初始化完成之前展示,是为了尽快告知用户,系统已经知道他要打开该应用,并且已经对此做出了响应。待初始化完成后,系统会显示用户UI并移除该窗口)黑屏白屏就是window窗口背景。我们看到的黑屏或白屏就是不同Theme时对应的Window的背景。

解决方案:

使用透明主题:


特点:应用启动慢,刷新同步,界面会一次性刷新出来。由于背景透明,初始化的过程中,用户看到的是桌面,给人一种点击之后稍等一会才一次性刷新出来的感觉。
注:话说微信启动时使用的就是类似这样的效果,但微信做了一定的优化处理,只在 冷启动 时才显示启动页,具体如何实现稍后会做详细介绍。
禁用Preview Window:
既然APP启动时的黑白屏是由Preview引起的,那系统有没有提供禁用的方法呢? 答案是肯定的。修改上述style 如下:


然而,黑白屏的问题是解决了,但点击应用图标后会有一段时间没有响应。用户体验不好,违背了优化的初衷,不推荐使用。
修改windowBackground属性(推荐):
通过windowBackground可以设置背景色、背景图片、能解析出图片的XML文件等


自定义layer-list: launcher_bg.xml 代码如下:



    
    
        
    

特点:应用启动快,非同步刷新,界面会先显示背景图,然后再刷新其他控件,比较推荐。

你可能感兴趣的:(Android性能优化--Android启动页优化)