1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android Study 之冷启动优化(解决启动短暂白屏or黑屏)

Android Study 之冷启动优化(解决启动短暂白屏or黑屏)

时间:2023-11-22 16:38:01

相关推荐

Android Study 之冷启动优化(解决启动短暂白屏or黑屏)

LZ-Says:话说真正负责项目后才发现,想要软件越来越好,就要从细节抓问题,去解决问题,这样我们的软件才会越来越好~

前言

今天下班路上闲的无聊随便点了几个app,包括正在负责的几个项目,突然发现怎么人家的启动时不会出现短暂白屏,而我自己负责的却会有短暂的白屏,瞬间感觉好不爽。先给大家瞅瞅效果吧。

时间虽然短暂,但是确实可以看到短暂的白屏现象,那么让我们一起去找找解决方案吧~

问度娘~

通过度娘搜索,我们可以得知,APP启动有俩种方式,分别为冷启动热启动,头一次知道还区分这个,赶紧看看这俩个分别都是什么含义吧~

1.冷启动:

当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。

PS:在本项目中,启动大致流程为,首先实例化Application,然后实例化入口Activity,最后显示Activity

2.热启动:

当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。

PS:由于在后台中存在当前的进程,So,直接从进程中启动,不需要重新创建Application,只需要实例化入口Activity即可。

简单分析

那么看到这里,也许有些同志知道该从何处入手,但是可能有的人也许就该问了,那么app启动方式和我们今天这个有什么关系呢?(LZ就属于第二种人,没辙啊~)

继续通过搜索,得知app在启动的时候会做一些操作,当然了,也可以理解为初始化相关内容,包括初始化我们的Application类,那么说到这里,免不了老生常谈的话语,尽量不要做耗时操作,如必须要做,做好加异步处理。所以说是这些东西导致我们app出现短暂的白屏。那么,简单了解之后,让我们一起开始动手解决吧~

解决问题~

网上看到大家一般都是使用以下俩个方式去优化这个问题,具体如下:

设置要启动的Activity主题为透明,可以给用户造成一个视觉上的假象;为要启动的Activity设置主题为一张背景图;

。。。 。。。

原理都差不多,都是设置相关主题,那我们直接按照第一种方式简单有效实现吧~

在Style中设置透明

<style name="AppTransparentTheme" parent="Theme.AppCompat.Light.NoActionBar"><item name="android:windowIsTranslucent">true</item><item name="android:windowBackground">@android:color/transparent</item></style>

启动的Activity中主题设置为以上Style

<activity android:name=".MainActivity"android:theme="@style/AppTransparentTheme"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity>

最直接查看效果
结束

好了,到此为止,简单介绍到这里~感谢大家观看~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。