Android 启动闪屏

起因

今天逛博客逛着逛着发现了这样一篇博文: Android性能优化典范(六),发现LogCat里面有一个可以看见App启动时间的Log输出:



于是我将过滤条件调成Displayed 发现自己做的app的启动时长总是在2分半到三秒钟不等,而其他App都能在1秒之内快速响应。为什么会这么慢呢?

我查看了一下LoadActivity和 MainApplication发现MainApplication里有很多的初始化代码并且公司要求在App启动时要访问服务获取有无更新信息。这就导致了启动时间很长的情况出现。

并且发现一个现象:
在启动QQ、微信等应用的时候很快就能进入导航页面,在我应用启动的时候白屏1-2秒过后我的启动页面显示了不到0.5秒的时间就跳转了!我琢磨着之前这个白屏时间是不是 MainApplication里的代码跑的太长时间了?于是我将MainApplication里的初始化移到了我的LoadActivity里,运行程序,还是一样!Why?

不是应该先显示界面再运行初始化操作么?于是我将初始化的代码又移到了LoadActivity生命周期的onStart和onResume两个方法里,还是一样。这就很尴尬了!

带着这个疑问,查找度娘给了我答案: 白屏是要等你的启动Activity跑完onCreate和onResume才会显示界面

解决

之前博文提到了:
对于启动闪屏,正确的使用方法是自定义一张图片,把这张图片通过设置主题的方式显示为启动闪屏,代码执行到主页面的onCreate的时候设置为程序正常的主题。

只给了两张图,并看不懂什么意思。于是翻到了这样一篇博文http://blog.csdn.net/zivensonice/article/details/51691136

跟我遇到的问题一毛一样...

解决方法:


先在资源文件drawable文件夹下创建一个background_splash,xml并编写如下代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

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

    <item>
        <bitmap
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/load_bg" />
    </item>

</layer-list>



这里是给他背景设置成蓝色,然后外加一张图片,这张图片可以拿你启动页的图片过来用
然后写一个自己的启动闪屏主体
   <!-- 启动闪屏主题 -->
    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash</item>
    </style>
最后给你的启动页加上这个主体即可
<activity   
            android:name="com.tyh.LoadActivity"  
            android:theme="@style/SplashTheme">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
</activity>  
你甚至是可以不需要setContentView都可以!

这样一来,避免了用户等待2秒多白屏的问题..

这个优化还是很有必要的

参考博客:http://blog.csdn.net/zxm317122667/article/details/51000728


对于Android Studio闪屏的问题,有两个可能的解决方法。首先,根据用户的引用,如果问题无法通过网上找到的方法解决,可能需要考虑更换一台配置好的电脑。然而,这可能需要一定的经济支持,所以用户可以等到有足够的资金再进行升级。 另一种解决方法是通过修改Android虚拟设备(AVD)的配置来解决闪屏问题。根据用户的引用,以下是具体的步骤: 1. 在Windows中,打开资源管理器,导航到" C:\用户'您的用户名'.android\avd"目录。在这个目录下,找到您正在使用的AVD的文件夹。 2. 在文本编辑器中打开该AVD文件夹中的config.ini文件。 3. 在config.ini文件中,找到并修改以"hw.gpu.mode"为开头的行。将它的值从"default"改为"off",保存并关闭文件。 4. 重新启动Android Studio,并尝试加载AVD,看看是否仍然出现闪屏问题。 希望通过这两种方法之一,您能够解决Android Studio闪屏的问题。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Android Studio模拟器启动后不停闪烁(已玄学解决)](https://blog.csdn.net/LYly_B/article/details/129701596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [AndroidStudio一直频闪(已解决)](https://blog.csdn.net/m0_52847482/article/details/130274784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值