Android启动页优化

2017-04-27  本文已影响0人  浮名虚誉架构师

App启动方式

(1)冷启动:当启动应用时,后台没有该应用的进程,系统会重新创建一个新的进程分配给该应用,即冷启动

(2)热启动:当启动应用时,后台已有该应用的进程(例如点击Back键或Home键退出,此时应用的进程依然在后台存活),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,即热启动

启动App时出现白屏或黑屏

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

优化:通过windowBackground可以设置背景色、背景图片、能解析出图片的XML文件等

<style name="AppTheme.Launcher" parent="Theme.AppCompat.Light.NoActionBar">

<item name="android:windowBackground">@drawable/launcher_bg</item>

<item name="windowNoTitle">true</item>

<item name="android:windowFullscreen">true</item>

</style>

自定义的launcher_bg.xml 代码如下:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@android:color/white"/>

<item><bitmap android:gravity="center" android:src="@drawable/launch_logo"/></item>

</layer-list>

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

注意:避免在启动时做密集沉重的初始化;异步初始化组件;梳理业务逻辑,延迟初始化组件、操作;减少布局嵌套;去掉无用代码、重复逻辑等

上一篇下一篇

猜你喜欢

热点阅读