文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

(一)Android 黑白屏由来以及解决方案

2022-06-06 13:10

关注

子曰:温故而知新,可以为师矣。 《论语》-- 孔子


作为

性能优化
系列章节的
第一篇
,我们就来说一说
Android 黑白屏
的历史由来以及如何解决。


一、APP的三种启动方式 1.
冷启动
程序从头开始,系统没有为该程序创建进程。一般场景:程序安装后的第一次启动 或者 应用程序被系统完全终止后再打开。 2.
热启动
程序任然驻留在内存中,只是被系统从后台带到了前台,因此程序可以避免对象重复初始化,加载布局和渲染。需要注意的是:如果程序的某些内存被系统清除了,则需要重新创建这些对象以响应热启动事件。 3.
暖启动
它包含热启动和冷启动一系列操作子集,比热启动的消耗稍微多一些。它与热启动最大的区别在于,它必须通过调用
onCreate()
方法开始重新创建活动,也可以从传递给
onCreate()
方法中保存的实例状态中获得某些对象的恢复。

说完了

3
种启动方式,下面我们以
冷启动的流程
引出黑白屏的问题。


4.
冷启动流程
加载并启动 App。 启动后立即为该 App 显示一个空白窗口。 创建 App 进程(创建应用程序对象)。 创建主 Activity。 加载布局,绘制。

当系统加载并启动 App 时,需要耗费相应的时间,即使时间不到 1s,用户也会感觉到当点击 App 图标时会有 “延迟” 现象,为了解决这一问题,Google 的做法是在 App 创建的过程中,先展示一个空白页面,让用户体会到点击图标之后立马就有响应;而这个空白页面的颜色是根据我们在

AndroiMainfest
文件中配置的主题背景颜色来决定的,现在一般默认是白色。这也就是
黑白屏问题
的由来。


用户就是上帝,就是流量。既然有这样的问题,那么作为开发者,该如何解决这一个问题?


二、黑白屏解决方案 1.
修改AppTheme
:

在应用默认的

AppTheme
中,设置系统 “取消预览(空白窗体)” 为
true
,或者设置空白窗体为透明。

代码如下:


         Customize your theme here. 
        @color/colorPrimary
        @color/colorPrimaryDark
        @color/colorAccent
        
        true
         
        true

方案一的两者方式目标都是将 Theme 的背景改为透明,这样用户从视觉上就无法看出黑白屏的存在。此方式不推荐,这是逆着谷歌的思路来的,既然到现在谷歌都没有取消这个空白窗体,我们应该好好利用,以前这个可以算作是一个bug,现在基本上都被用来打广告了。


2.
自定义AppTheme
:
1.自定义继承 AppTheme 的主题:
// styles文件中自定义启动页主题theme
       @drawable/launch_layout
        true
        true
// launch_layout 文件

2.将启动的 Activity 的 theme 设置为自定义主题 :
// AndroidManifest.xml 文件中

我这边仿照的是网易云音乐的启动流程,可以看一下效果图:
gif


这种方式从用户角度和开发角度都考虑到了,是一种很不错的方式,推荐使用。如果想要在其中加入什么动画,倒计时什么的,都可以在

SplashActiivty
中写入代码,也可以参考其他的 app,
SplashActiivty
页面参考此写法,然后再跳转到 广告页面,加入什么三秒倒计时等等。



写在文末

纸上得来终觉浅,绝知此事要躬行。 《冬夜读书示子聿》-- 陆游

好了,关于

Android 黑白屏由来以及解决方案
就说完了,各位小伙伴可以在项目中使用此方式优化。


码字不易,如果本篇文章对您哪怕有一点点帮助,请不要吝啬您的点赞,我将持续带来更多优质文章。
作者:苍猫不是猫


阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯