Android性能优化——App启动白屏问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/I123456789T/article/details/89471527

前言:提到Android应用启动时白屏问题,应该很多人都有遇到过,不过由于我们一般的小公司做的应用都不在在乎这个问题,一般也不去管它,只要应用内容没有问题,一切就OK了,但是避免不了有时在面试时有问到这个问题,之前我也是一脸懵逼,不懂,不会,,,,现在慢慢的去了解这个了,能通过我们的方式去进一步处理白屏问题,同时在App启动时进行一些优化,让你的App启动速度更快一些,今天就跟大家聊聊我的解决方案,其实很简单,其它的大型App也有类似的解决方法。

1、小伙伴们现在拿起你们的安卓手机,随便打开一个你自己写的应用App,不要打开大型公司的App,就打开你自己写的,不管是测试的,还是公司的项目,然后点击图标启动,看一下,是不是会出现下面这种点击之后会先出现短暂的白屏,然后才看到你的启动图片,在进入项目中,

注意到了吗?短暂的白屏,这个问题是在哪里呢?

大家请打开你的App项目,或者新建项目中查看res-->values-->styles.xml中有这样的默认主题:

这个主题有一个parent ,一般如果我默认这样洗的话,启动会出现白屏,如果把这个parent去掉,则会出现黑屏,

大家可以一路去点这个parent,去查看他们的父级parent ,一直点一直看他们有没有parent,直到那个没有parent时 ,可以看到这个:

如果这个时候我们在点这个资源drawable,可以看到下面这个:

看到了没?默认的白色,知道了吧?白屏就在这里,不过我们可以修改它的颜色,

现在我们回到开始的style位置,在style中重新定义这个windowBackground,就能修改颜色,

eg:

这里我修改成蓝色,在此启动时,白屏就变化蓝屏了,找到原因了吗?

2、伪解决方案:

那一般都应该怎么解决呢?一些小伙伴应该都知道怎么处理了吧?我们可以稍微注意下京东,天猫等他们是怎么处理呢?他们可很会利用这个白屏时间,把这里修改为一张广告图片,比如:@drawable/image.png  ,这样在启动就变了,,

是不是能解决这个问题?那还有没有其它发方法呢?有,

我们这里不加任何颜色,也不加图片,直接设置为空,同样的位置上,这样写:@null   , 这样在其启动,你会发现那个白屏就不见了,但是同时用心的朋友会发现,当你点击应用图标时,它并不会立刻进入App,会有短暂的等待才进入App里面,这是为什么呢?

原因:因为我们上面虽然把白屏颜色置空了,但是并不能真的去掉这个白屏问题,只是让你看不见,它在启动时任然还需要花费同等的时间才会进去你的App,这么说是不是能明白了?

电商的App他们都是利用这个白屏时间加载一张广告图片,不同时间加载都会有不同图片。

3、另一种方案:

我们可以在style中单独写一个style,如:
 

    <style name="AppTheme.Launcher1">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowDisablePreview">true</item>
    </style>

然后在你项目启动的第一个activity的onCreate()方法中加上如下代码:
 

setTheme(R.style.AppTheme_Launcher1);

在你的Mainifest.xml中也要把这个主题加上,就可以了。这也是一种方案。

好了这里就简单介绍这个启动白屏的最简单的解决方案。

猜你喜欢

转载自blog.csdn.net/I123456789T/article/details/89471527