首页 > 其他分享 >Android Study 之冷启动优化(解决启动短暂白屏or黑屏)

Android Study 之冷启动优化(解决启动短暂白屏or黑屏)

时间:2022-11-10 19:32:48浏览次数:40  
标签:启动 Study 冷启动 Activity 进程 白屏 app 黑屏


LZ-Says:话说真正负责项目后才发现,想要软件越来越好,就要从细节抓问题,去解决问题,这样我们的软件才会越来越好~

前言

今天下班路上闲的无聊随便点了几个app,包括正在负责的几个项目,突然发现怎么人家的启动时不会出现短暂白屏,而我自己负责的却会有短暂的白屏,瞬间感觉好不爽。先给大家瞅瞅效果吧。

Android Study 之冷启动优化(解决启动短暂白屏or黑屏)_热启动

时间虽然短暂,但是确实可以看到短暂的白屏现象,那么让我们一起去找找解决方案吧~

问度娘~

通过度娘搜索,我们可以得知,APP启动有俩种方式,分别为冷启动热启动,头一次知道还区分这个,赶紧看看这俩个分别都是什么含义吧~

1.冷启动:
当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。
PS:在本项目中,启动大致流程为,首先实例化Application,然后实例化入口Activity,最后显示Activity

2.热启动:
当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。
PS:由于在后台中存在当前的进程,So,直接从进程中启动,不需要重新创建Application,只需要实例化入口Activity即可。

简单分析

那么看到这里,也许有些同志知道该从何处入手,但是可能有的人也许就该问了,那么app启动方式和我们今天这个有什么关系呢?(LZ就属于第二种人,没辙啊~)

继续通过搜索,得知app在启动的时候会做一些操作,当然了,也可以理解为初始化相关内容,包括初始化我们的Application类,那么说到这里,免不了老生常谈的话语,尽量不要做耗时操作,如必须要做,做好加异步处理。所以说是这些东西导致我们app出现短暂的白屏。那么,简单了解之后,让我们一起开始动手解决吧~

解决问题~

网上看到大家一般都是使用以下俩个方式去优化这个问题,具体如下:

  1. 设置要启动的Activity主题为透明,可以给用户造成一个视觉上的假象;
  2. 为要启动的Activity设置主题为一张背景图;
    。。。 。。。

原理都差不多,都是设置相关主题,那我们直接按照第一种方式简单有效实现吧~

在Style中设置透明
<style name="AppTransparentTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
启动的Activity中主题设置为以上Style
<activity
android:name=".MainActivity"
android:theme="@style/AppTransparentTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

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

最直接查看效果

Android Study 之冷启动优化(解决启动短暂白屏or黑屏)_热启动_02

结束

好了,到此为止,简单介绍到这里~感谢大家观看~


标签:启动,Study,冷启动,Activity,进程,白屏,app,黑屏
From: https://blog.51cto.com/u_13346181/5841986

相关文章

  • Android Study之总结使用ListView时需要去除相关效果的属性
    LZ-Says:各种忙啊。。。话说虽然之前推出一个RecyclerView替代了ListView以及GirdView,但是ListView依旧是ListView,掌握点相关知识多少还是有点用处的。使用ListView时,不免......
  • Android Study 之 极光推送使用心得以及记录
    LZ-says:啧啧,最近风起云淡,快过年喽~~~又是一件纠结的事儿。。。前言最近项目遇到推送,与后台贱人于一合计,果断采用了极光推送。在使用过程中,有爽有不爽,特意再次记录下。使用记......
  • 使用phpstudy搭建gitee开源项目[勾股dev]
    前段时间公司一直要求进行只是梳理,整合,想着做一套知识管理系统,在gitee上找到了一个开源的项目管理系统,带的有知识库管理子系统,索性就拿来使用了;gitee地址  https://git......
  • mybatis-study
    pom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta......
  • thinkphp在phpstudy nginx 隐藏index.php 问题
    近日选用phpstudynginx测试本地项目,thinkphp5.1url('index/login/login')生成路径访问时不包含index.php,结果报404错误。必须index.php/login/login这样访问很丑在对......
  • HPL Study 2
    1.并行编程 (1)并行程序的逻辑:1)将当前问题划分为多个子任务2)考虑任务间所需要的通信通道3)将任务聚合成复合任务4)将复合任务分配到核上(2)共享内存编程:路障---......
  • 电脑黑屏但可以打开任务管理器
    之前遇到过这个问题,没有整理博客,今天又遇到了这个问题,写下来和大家分享首先打开任务管理器,找到explorer.exe,结束它,然后重新新建该进程就可以解决......
  • Linux学习笔记之mac系统Vmware Fusion虚拟机黑屏问题
    vmwarefusion虚拟机黑屏mac详细参考此文,​​https://zhuanlan.zhihu.com/p/108613520​​目前在MontereyMacOS12.6系统测试适用,仅做记录在此/*......
  • phpstudy出现乱码导致Apache或者Nginx无法启动
    今天在使用Phpstudy的时候,突然无法创建新站点了(好久没用过了)。错误提示如下:(注意截图位置,端口和时间都是乱码)    经过查阅大量资料,原来是软件的编码格式导致......
  • phpstudy集成工具 vscode 插件phpdebug+php拓展xdebug调试
    vscode需要安装phpdebug 服务器环境需要支持xdebugphp.ini配置设置 必须xdebug.remote_enable=Onxdebug.remote_autostart=On注意端口要和launch.json配置......