我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android应用启动白屏处理的方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android应用启动白屏处理的方法是什么

本篇内容介绍了“Android应用启动白屏处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    正文

    相信大家一定遇到过某些App在手机桌面打开时会出现短暂或者几秒钟的白屏情况吧,没错那是应用程序启动后系统默认的背景色,此时应用的第一个Activity还未被加载出来,所以不管怎么设置第一个Activity的背景色都毫无作用。首先先聊一聊冷启动和热启动:

    • 冷启动

    杀掉App,此时的App进程不存在于后台,启动时从Logo页面开始。

    • 热启动

    App处于后台,进程未被杀死,重新进入前台时页面保持上一次页面,不会重新启动。

    所以,我们此次所讲的属于冷启动过程,当应用程序代码量小、业务逻辑少、体积小时,App启动还是比较快,白屏时间可以忽略不计。一旦初始化工具过多,首页业务逻辑过多时启动速度会严重变慢,此时的白屏时间会越来越长,给人一种极差的体验。我们需要做的就是在白屏时间尽可能快速的展示Logo等图标,让它成为一个过渡,待应用程序准备好后跳转到相应页面以提高用户体验。

    配置一个SplashActivity

    首先,需要配置一个SplashActivity(应用展示的第一个Activity)的主题

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">    <!-- 将splash图片设置在这,这样这张图片取代白屏 -->    <item name="android:windowBackground">@drawable/logo_drawable</item>    <item name="android:windowAnimationStyle">@style/notAnimation</item>    <!--将顶部状态栏设置为透明,并将界面内容布局上边界上提至状态栏顶部-->    <item name="android:windowTranslucentStatus">true</item>    <!--如果有底部虚拟导航栏,则将底部虚拟导航栏设置为透明,并将界面内容布局下边界下沉至虚拟导航栏底部-->    <item name="android:windowTranslucentNavigation">true</item>    <item name="android:windowFullscreen">true</item>    <item name="android:windowNoTitle">true</item>    <item name="windowActionBar">true</item></style>

    其中windowBackground是我们本次重点配置,windowAnimationStyle是取消页面的一些动画效果,一般首页我们让它无动画,其他设置根据自己情况设置即可。

    让我们来看看logo_drawable

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item>        <color android:color="#ffffffff"/>    </item>    <item        android:top="208dp"        android:bottom="453dp">        <bitmap            android:gravity="center"            android:class="lazy" data-src="@mipmap/ic_logo" />    </item></layer-list>

    白色背景上叠加一个bitmap,这里需要注意的是bitmap外层的item标签一定要根据设计稿配置好上下边距,否则运行App后的效果会被铺满屏幕。

    然后我们将上面的主题配置到activity中,此时SplashActivity的布局文件中可以什么都不写,因为该主题就相当于背景,如果此处编写页面可能会和背景logo重合,仅需要编写一些逻辑和跳转处理。

    <activity    android:name=".ui.splash.SplashActivity"    android:configChanges="orientation|screenSize"    android:exported="true"    android:launchMode="singleTop"    android:screenOrientation="portrait"    android:theme="@style/SplashTheme">    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>

    至此,再次运行打开App发现,几乎点开就是我们配置的logo,完美处理白屏问题。

    注意:

    如果项目使用了UI适配的三方库,例如androidAutoSize,一定记得根据文档处理放弃启动页适配,否则运行出来的效果也是不如意。

    “Android应用启动白屏处理的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Android应用启动白屏处理的方法是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Android应用启动白屏处理的方法是什么

    本篇内容介绍了“Android应用启动白屏处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正文相信大家一定遇到过某些App在手
    2023-07-05

    Android应用启动白屏处理方案详解

    这篇文章主要为大家介绍了Android应用启动白屏处理方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-27

    Android中Splash应用启动白屏问题的解决方法

    不久前项目开始了一段时间了,刚开始怀疑是Android Studio中新加入的Instant Run功能引起的,于是重新打release包后再次运行发现还是有这样的问题,突然想到了上次集成进来了云信,于是猜想可能的确是加入云信后Applic
    2022-06-06

    android开机自启动的方法是什么

    Android开机自启动的方法有以下几种:1. 使用BroadcastReceiver:创建一个继承自BroadcastReceiver的类,在类中重写onReceive方法,在onReceive方法中处理开机自启动的逻辑,并在Androi
    2023-08-12

    Android触屏事件的处理方式是什么

    Android触屏事件的处理方式是通过监听和响应触摸事件来实现。具体来说,可以通过以下几种方式来处理触屏事件:1. 在Activity或Fragment中重写onTouchEvent()方法,通过判断MotionEvent的动作类型来处理触
    2023-08-11

    Android应用程序的启动流程是什么

    本篇内容介绍了“Android应用程序的启动流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!应用进程的启动流程本文基于Android
    2023-07-05

    Android冷启动耗时优化的方法是什么

    这篇文章主要介绍了Android冷启动耗时优化的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android冷启动耗时优化的方法是什么文章都会有所收获,下面我们一起来看看吧。1,背景最近开发了一个新的
    2023-06-26

    android多线程并发处理的方法是什么

    在Android中,有多种方法处理多线程并发。以下是一些常用的方法:1. AsyncTask:AsyncTask是一种简单的异步任务处理机制。它允许在后台线程中执行耗时操作,并在主线程中更新UI。AsyncTask有三个关键方法:onPre
    2023-08-12

    android事件分发与处理的方法是什么

    Android事件分发与处理的方法主要有以下几种:1. 触摸事件分发处理:Android中的触摸事件主要包括按下、移动、抬起等动作。在ViewGroup中,通过dispatchTouchEvent()方法将触摸事件分发给子View进行处理,
    2023-09-13

    Android handle-message的发送与处理方法是什么

    在Android中,`Handler`类用于发送和处理消息。发送消息:1. 创建一个`Handler`对象。2. 创建一个`Message`对象,用于包含要发送的消息内容。3. 使用`Handler`对象的`sendMessage()`方法
    2023-08-11

    vue处理响应式数据的方法是什么

    这篇“vue处理响应式数据的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue处理响应式数据的方法是什么”文章吧
    2023-07-05

    Linux系统启动与服务管理的方法是什么

    今天小编给大家分享一下Linux系统启动与服务管理的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 前言  服
    2023-06-29

    Android调用应用安装界面的方法是什么

    Android调用应用安装界面的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.首先给AndroidManifest.xml(清单配置文件)添加权限
    2023-06-29

    android调用JNI SO动态库的方法是什么

    这篇文章主要介绍“android调用JNI SO动态库的方法是什么”,在日常操作中,相信很多人在android调用JNI SO动态库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”android调用
    2023-06-25

    Vue3中响应式的特殊处理方法是什么

    本篇内容介绍了“Vue3中响应式的特殊处理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue2 vs vue3两个响应式更新的核
    2023-07-06

    Android应用中实现属性动画的原理是什么

    今天就跟大家聊聊有关Android应用中实现属性动画的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android动画概述:Android 的动画可以分为三种:View 动
    2023-05-31

    Centos7 数据库启动用户的建立方法是什么

    Centos7 数据库启动用户的建立方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用共享内存的 数据库系统 .比如 oracle , postgresql 在l
    2023-06-05

    Java多线程启动为什么调用的是start()方法而不是run() 方法

    这篇文章主要讲解了“Java多线程启动为什么调用的是start()方法而不是run() 方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java多线程启动为什么调用的是start()方法而
    2023-06-16

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录