android冷启动白屏问题

作者: erki_stwee | 来源:发表于2018-06-21 20:03 被阅读85次
女神.jpg

今天把玩公司App发现了一个有趣的现象。启动app白屏。之前没太留意过;在参照大厂App解决白屏的方案后。简单汇总一下。

前言

冷启动:App第一次启动的时候会加载一个Application进程,首先会创建和初始化Appliation类,然后在加载Activity。
热启动:利用后台已经拥有的进程,从而避免了Application的加载。直接去加载Activity。

解决白屏的方案大致有以下四种

  • 加入动画
  • 使用占位图
  • 使用图片
  • 使用windowDisablePreview属性

这里我就描述一下使用占位图和windowDisablePreview属性

windowDisablePreview属性

<style name="SplashTheme" parent="AppTheme">
        <item name="android:windowDisablePreview">true</item>
 </style>

在AndroidManifest中設置主Activity的theme值,在主Activity中还原。

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        setTheme(R.style.AppTheme);
        getWindow().setBackgroundDrawableResource(R.drawable.main_splash_bg);
        super.onCreate(savedInstanceState);
    }

运行后发现启动App延迟几秒后跳转到主Activity(有点类似掌上英雄联盟,会让用户误以为是自己手机的问题)。

使用占位图

  <style name="SplashTheme" parent="AppTheme">
        <item name="android:windowBackground">@drawable/shape_launch</item>
        <item name="android:windowFullscreen">true</item>
    </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">

    <item android:drawable="@android:color/white"/>
    <item>
        <bitmap
            android:src="@mipmap/main_splash_bg"
            android:gravity="fill" />
    </item>

</layer-list>

使用windowBackground属性来完成其他操作同windowDisablePreview属性的设置。运行后发现明显白屏问题得到有效解决。

参考文献

gitHub地址
google论坛

相关文章

  • Android冷启动白屏问题

    1. 冷启动与热启动 通常我们在使用某个应用程序时,都是点击桌面应用图标来启动该程序。你肯定或多或少的碰到过这种情...

  • android冷启动白屏问题

    今天把玩公司App发现了一个有趣的现象。启动app白屏。之前没太留意过;在参照大厂App解决白屏的方案后。简单汇总...

  • Android SplashsCreen启动页优化库 让App启

    由于Android启动的冷启动白屏问题 ,Google终于看不下去了.从 Android 12 开始,在所有应用的...

  • Android冷启动白屏黑屏处理

    一、冷启动会有黑白屏现原因Android冷启动黑白屏现象其实是因为activity的window背景颜色二、解决办...

  • Android启动

    1.启动加速 2.解决Android应用冷启动时出现的白屏问题 3.十五、Android性能优化之提升应用的启动速...

  • Android开发知识点总结

    Android启动 一、Android应用启动方式:(1)冷启动 (2)热启动 (3)温启动 二、产生白屏的原因...

  • android 冷启动白屏黑屏

    前言: 当我们开发APP时如果不对其做任何处理,启动则会根据主题显示白色或者黑色,而这种情况对于用户来说体验性则不...

  • Android冷启动白屏解决

    在Android Studio中,建立一个新项目运行,什么逻辑也没有,也会出现一段白屏时间,这是因为在gradle...

  • Android项目优化-冷启动优化

    APP启动优化主要解决app启动缓慢,白屏半天的问题。 app启动方式主要为:冷启动和热启动 冷启动:当进程关掉,...

  • App启动页面优化

    1、白屏问题 出现问题描述 Android APP启动页面白屏的问题,android开发app启动时若没有做特殊处...

网友评论

  • xljx:getWindow().setBackgroundDrawableResource(R.drawable.main_splash_bg);

    这种方式可能导致变形;
    启动白屏的问题,最终还是讲初始化库的工作放到非Application中,也就是延时初始化,按需初始化
    erki_stwee:@xljx 变形的问题,测试测的时候并没有出现也就没有做过多关注。按需初始化感觉很麻烦,有些需要全局使用的方法个人感觉还是放在Application中方便点,你可以学习一下插件化开发。它也能解决白屏的问题。
    xljx:图片以布局方式呈现,边缘为纯色,设置嵌套的parent View为该纯色值
  • honglei92:layerkist 学习了

本文标题:android冷启动白屏问题

本文链接:https://www.haomeiwen.com/subject/wbvcyftx.html