文中描述的冷启动时间为:点击应用图标 到 app主界面展示到用户面前,这个时间段。
在程序初始化阶段,我们一般会使用一个有公司LOGO的过渡界面SplashScreen
来弥补这段空白。
SplashScreen
作为Launcher
界面,除了展示公司LOGO外,Application和Activity的初始化操作都在这里被执行。
概念重温
windowBackground
Activity窗体的背景颜色。该属性可以决定在Activity布局文件展示给用户之前,界面该展示什么元素。
一般我们会使用其他颜色代替Activity默认主题的黑色,达到视觉上加快响应速度目的。
核心思想
使用windowBackground
代替布局xml展示公司的logo,过渡界面只负责全局组件初始化的工作。
这样做的好处就是:Application、Activity初始化的过程都可以算进过渡界面停留的时间。
实践
使用windowBackground
替代xml里面的背景图
<style name="AppTheme_fullScreen.splashScreen" parent="AppTheme_fullScreen">
<item name="android:windowBackground">@drawable/splash_screen_bg</item>
</style>
优化
除了有依赖的一些步骤,Application、Activity其余初始化操作我们可以抽出放在子线程Runnable
里执行,让初始化提前结束掉。
网友评论