美文网首页
android 冷启动白屏黑屏

android 冷启动白屏黑屏

作者: 全球顶尖伪极客 | 来源:发表于2018-09-18 16:49 被阅读0次

前言:

当我们开发APP时如果不对其做任何处理,启动则会根据主题显示白色或者黑色,而这种情况对于用户来说体验性则不大好,现在根据启动展示黑色、白色可做些优化。

冷启动产生原因主要是由APP启动流程说起

App启动流程:

1.用户点击icon
2.系统开始加载和启动应用
3.应用启动:开启空白(黑色)窗口
4.创建应用进程
5.初始化Application
6.启动UI线程
7.创建第一个Activity
8.解析(Inflater)和加载内容视图
9.布局(Layout)
10.绘制(Draw)

而这一系列过程会消耗时间,而总有的时间是避免不了的,从而我们要想办法减少冷启动的时间:

  • 1.减少在 Application 中的耗时操作(懒加载)
  • 2.减少在 onCreate的耗时操作

Android为我们提供了 android:windowBackground的解决方案,我们可以专门为 WelcomeActivity 设置一个背景来避免 创建空白(黑色) 窗口这一步骤的尴尬,而对于 android:windowBackground 又延伸了各种各样的方案。

1. 纯色背景 + 启动图标

   <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="${app_icon}"
        android:label="${app_name}"
        android:theme="@style/ActivityTheme">
        <meta-data
            android:name="CHANNEL_ID"
            android:value="${UMENG_CHANNEL_VALUE}" />
        <activity
            android:name=".business.basic.ui.WelcomeActivity"
            android:theme="@style/WelcomeThemeApp"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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




style.xml

    <!-- 基本主题 -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

<!-- 整个应用activity切换动画主题 -->
    <style name="ActivityTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowAnimationStyle">@null</item>
    </style>
    <!--使用图片的方案-->
    <style name="WelcomeThemeApp" parent="ActivityTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowBackground">@drawable/welcome</item>
        <!--沉浸-->
        <item name="android:windowTranslucentStatus">true</item>
    </style>
 <!--纯色加启动图标的方案-->
    <style name="WelcomeThemeLayer" parent="ActivityTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/welcome_layer_list</item>


welcome_layer_list.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle">
            <gradient
                android:angle="45"
                android:endColor="@color/basic_blue"
                android:startColor="@color/colorAccent" />
        </shape>

    </item>

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/welcome" />
    </item>

</layer-list>

参考链接:https://mp.weixin.qq.com/s/kHPy6wjjvZiyP9ZxiLUnTA
https://github.com/aohanyao/AndroidRoad/tree/master/ColdStart
https://github.com/saulmm/onboarding-examples-android

相关文章

  • android 冷启动白屏黑屏

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

  • Android冷启动白屏黑屏处理

    最近项目中点击启动应用的时候都有一段时间的白屏,这会给人一种卡顿的感觉。注意看了下,手机上有不少应用也有这样的问题...

  • Android冷启动白屏黑屏处理

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

  • Android冷启动黑屏或者白屏解决办法

    大家可能都碰到过,APP在冷启动的时候出现黑屏或者白屏,通俗说,就是点击APP,先黑一下或者白一下,然后再加载我们...

  • Android开发知识点总结

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

  • App启动页面优化

    一、存在白屏问题 1.1 问题描述 出现问题描述 android app启动页面黑屏的问题,android开发ap...

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

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

  • android启动页的白屏或者黑屏解决

    很多app之所以出现启动后黑屏或者白屏主要是在启动页没有设置android:windowBackground属性 ...

  • 启动时白屏或黑屏

    冷启动:应用杀死重新启动热启动:在后台 原因:app创建时有个初始化的过程,手机需要时间加载 白屏和黑屏和手机型号...

  • 开发中常见问题总结

    一、启动页白屏及黑屏解决二、Android 进程保活三、软键盘相关操作四、Android 设备的CPU类型(通常称...

网友评论

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

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