美文网首页UI一步一步性能优化
APP性能优化--启动黑白屏体验优化

APP性能优化--启动黑白屏体验优化

作者: 初夏的雪 | 来源:发表于2020-10-30 15:18 被阅读0次
相信做app的每个人都遇到过,自己的app在启动的时候,会出现白色或黑色的屏幕,然后过几秒后,正常进入应用。这个不影响用户使用,但是体验不是那么的友好,那这个该如何解决会更友好呢?下面进入正题

1.为什么会出现黑白屏呢?

当我们点击桌面图标时,系统会进行zygote一个应用进程、应用的初始化等一系列工作,这些都是需要耗时的。那么这段时间内,用户会觉得“延迟”响应(或卡顿),为了解决这个问题,google就默认启动一个空白的页面,以便响应用户操作。

如果你的应用application 或者launcher activity 启动比较慢,比较耗时,没有将系统的backgroundWindow替换掉,就会出现了黑白屏。那么这个黑白屏到底是黑色还是白色,取决于你选择的应用的Theme ,如果是Dark 就是黑色,反之Light 就是白色。

2.优化方案

很多app都采用修改Theme的方式来优化这个黑白屏的体验。(以图片为例)

2.1 准备图片(welcome_logo.png为你想展示的内容)

welcome_logo.png

2.2 新建一个展示图片的drawable 文件(welcome_bg.xml)

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"/>
    <item>
        <bitmap
            android:gravity="center"
            android:scaleType="centerCrop"
            android:src="@drawable/welcome_logo"></bitmap>
    </item>
</layer-list>

注:此处也可以修改成动画等其他效果的。

2.3 自定义Theme

在styles.xml中添加自定义的Theme,如下:

<style name="AppTheme.Launcher">
        <item name="android:windowBackground">@drawable/welcome_bg</item>
        <item name="android:windowFullscreen">true</item>
    </style>

注意:上面的drawable ,为第二步自定义的图片drawable

2.4 引用自定义的Theme

<activity
            android:name=".LoginActivity"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.Launcher">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

2.5 最重要的一步

在上一步将启动页面的Theme 设置为我们自定义的了,那么启动结束后是不是需要修改回来呢?那是必须的。

重要的事情说三遍
重要的事情说三遍
重要的事情说三遍

在Launcher Activity的onCreate(Bundle savedInstanceState)方法调用super.onCreate();之前使用setTheme()来修改回去。

 @Override
    protected final void onCreate(Bundle savedInstanceState) {
     setTheme(R.style.Activity_Translate_anim);
        super.onCreate(savedInstanceState);
        mDataBinding = DataBindingUtil.setContentView(this, getLayoutResId());
}

好了完成上述步骤,就可以实现启动体验优化了,但是这只是其中一个方案,有更好的方案,欢迎留言。

相关文章

  • App白屏和启动优化的一些思路

    App启动优化 App启动优化原理与技术方案 启动优化 黑白屏问题 启动页面主题设置为图片 启动页面,不要再onC...

  • APP性能优化--启动黑白屏体验优化

    1.为什么会出现黑白屏呢? 当我们点击桌面图标时,系统会进行zygote一个应用进程、应用的初始化等一系列工作,这...

  • iOS 性能优化三

    主要讲解APP冷启动的优化 iOS 性能优化一iOS 性能优化二iOS 性能优化三 1. APP 启动的分类 冷...

  • iOS性能优化 - 整理

    本文主要包含: 性能优化 - 卡顿性能优化 - 耗电优化性能优化 - APP启动优化安装包瘦身 一  性能优化 -...

  • 冷启动优化

    冷启动优化主要优化两个方面 Application 性能优化 App启动页性能优化业务优化不在本章优化范围内。本章...

  • App优化 - ANR优化

    前言 App优化 - 需要优化哪些? App优化 - 性能分析工具 App的3种启动方式 App优化 - App启...

  • Android系统原理

    Android性能优化(一)App启动原理分析及启动时间优化 - CSDN博客 Android性能优化(二)布局渲...

  • iOS App 启动性能优化

    iOS App 启动性能优化

  • APP性能优化

    一、APP启动性能优化。 APP启动主要分冷启动和热启动,主要优化冷启动。 1.尽量减少didFinishLauc...

  • iOS性能优化篇小结(二)

    iOS性能优化篇小结(一) 4. APP启动优化 APP启动可以分为2种: 冷启动:从零开始启动APP 热启动:A...

网友评论

    本文标题:APP性能优化--启动黑白屏体验优化

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