没有合适的资源?快使用搜索试试~ 我知道了~
首页Android应用程序启动白屏黑屏优化
Android应用程序启动白屏黑屏优化
5星 · 超过95%的资源 需积分: 28 10 下载量 172 浏览量
更新于2023-06-02
评论
收藏 230KB DOCX 举报
大家最为熟悉的拨号盘或者短信应用,在第一次启动的时候,会有一定时间的白屏现象,其实,默认的情况下,android程序启动时,都会有一个黑屏或者白屏闪过的现象,在白屏或者黑屏过后才显示真正的应用界面。这样给用户的体验不好,用户希望在第一时间快速而顺畅的看到可以和应用交互的页面,而不是一片白或者黑,那么产生这种白屏/黑屏现象的原因是什么?我们该如何优化白屏/黑屏现象?下面我为大家一一介绍
资源详情
资源评论
资源推荐
应用程序启动白屏黑屏优化
由 XiangRiKui0109 整理于 2014 年 12 月
背景
大家最为熟悉的拨号盘或者短信应用,在第一次启动的时候,会有一定时间的白屏现象,其实,默认的情况下 ,
程序启动时,都会有一个黑屏或者白屏闪过的现象,在白屏或者黑屏过后才显示真正的应用界面。这样给用
户的体验不好,用户希望在第一时间快速而顺畅的看到可以和应用交互的页面,而不是一片白或者黑,那么产生这种
白屏黑屏现象的原因是什么?我们该如何优化白屏黑屏现象?下面我为大家一一介绍。
为什么会产生白屏黑屏现象?
在 系统中, 组件在启动之后,并不能立刻就呈现给用户看见,我们都知道, 的生命周期走
到 方法的时候,该 才会被用户看见(到 称 的可见生命周期)
被启动后,需要经过各种初始化,比如数据,控件加载渲染等,初始化好之后才能 到用户眼前,这样
用户从启动该 到看见该 之间有一定的等待时间。
本身的机制中, 为了缓冲给用户带来的这段等待时间, 中的窗口管 理服务会在启动该应用的
(下文,我们将称它为真正的 窗口)的时候,先启动一个启动窗
口(或者我们可以称它为预览窗口),让用户至少能先看到一个带有标题栏的空
白 窗 口 , 当 创 建 完 成 组 件 的 之 后 , 就 会 请 求
服务将该 显示出来。当 组件初始化好,启动完成,并且它的窗
口 也 显 示出来 的 时候, 服 务 就会结 束 显示它 的 启动窗 口
。
某个 的启动窗口的样式 取决于该 设置的主题样式,比如
主题样式设置成白色主题,则启动窗口的背景呈现白色,反之,黑色。
主题样式设置成有标题,则启动窗口含有标题,反之,启动窗口呈现全屏的白屏黑屏。
另外
组件的启动窗口是由
服务来控制是否显示的,也就是说,
应用程序
是无法决定是否要要
组件显示启动窗口的。通过,修改
!"#$
文件的
%&''(()*+',-),
变量,可以控制是否设置启动
"""""."""""""""""."#""
"""%&''(()*+',-),"/"0""
我们该如何优化白屏黑屏现象?
从上面,我们可以知道,由于应用启动 初始化数据控件才能 真正的窗口 ,这样从启动
到看见 的窗口,需要 一定的时间, 系统 为了减少用户的等 待时间,加入了
这种预览的概念,使得启动 到看见 变得更平缓流畅,改善用户体验。
这样我们知道了,所谓的“白屏黑屏”界面,其实是启动窗口,而且是因为我们的 加载需要等待时间才加入的
窗口,我们该如何优化该现象,让用户体验更好呢?
我们可以从两方面去优化该问题:
1# 规避策略型优化:优化启动窗口,使得 和 之间的过渡柔和平缓。
2# 实际问题实际处理:对我们应用本身的性能做优化,尽量减少 的启动时间。
规避策略型优化
3.1.1 优化预览界面,使预览界面和真正的 activity 界面之间过度柔和平缓
3.1.1.1 设置预览界面为空或指定预览界面背景
两种方式:
1
整个系统在
!
层 关闭启动窗口
3
这样所有
启动时候都不会有启动窗口,
不推荐。
修改 !"#$ 文件的 %&''(()*+',-), 变量为
2每个入口 写一个 (,指定它的 .! 为特定背景或者透明。
如何为一个 指定一个自定义的 ( 呢?
方法如下:
)添加启动图片资源:
在 . 资源文件夹中添加启动图片资源文件。注意横竖屏。横屏可以放在
默认的 . 文件夹中,竖屏图片应该与横屏图片同名,放在 .
文件夹中。
自定义 (:
在 '$#4 中加入自定义 的 (,
如下所示:
56"
7"/8'444'''8""
""""/89 (8:""
""""7"/8 ;!8:""
""""""""9.''""
""""7:""
""""7"/8 *(8:""
""""""""""
""""7:""""
7:
""
其中 . 属性,需要指定你的启动图片。*( 根据你的需要
选择需不需要指定。 属性自己指定。
修改 ,将 与 ( 对应:
定义好 ( 后,就该为对应的 绑定 ( 了。这个代码主要在
中实现:
在 中加上以下属性:
56"
/89'444'''8""
.)设置背景透明
从 切换到 ; 的过程中出现黑屏,可以在 文件中改变 ; 的 ,
在 里添加7
/8 )(8:7:,这样从 到 ; 的
过程中,因为 ; 是透明的,所以背景就是 。这样的用户体验比较好。
1、在 里面添加一个
7/8<&8
/89 (#=8:
7/8 *(8:7:
7/8 )(8:7:
去除切
入白屏的动画
7/8 <&8:97:
"7:
2、将主题设置到启动 的主题里面
7
/8#8
></8!.%?8
/89<&8:
7>:"
7 /8###)*8:"
7
/8###=@*<%,8:"
7>:
7:
设置预览界面的风格和真正 界面风格一致
当你的 的真正窗口是白色调的是,请设置该 的主题是白色调主题,而非黑色
主题,这样预览窗口是白色而不是黑色。
异步 延迟 加 载耗时数据,先加 载一个快速启动的 画面 提示 ,比如 进度条,比 如
!"#比如启动窗口等 思路
1#
使用
概念(这部分单独列出页面说明,拨号盘启动白屏问题目前主要用
了这个方法)
2#
在
<
里创建一个线程,在这个线程里加载你要的东西,
<
里的工作只
加载一个
和创建线程。
在 < 方法中加入类似如下的代码。加载过程中会显示一个正在加载的进度提示
框 ""
>A/A#38提示框 838正
在加载数据,请稍候830"
"""""""""""""""">%/%B"
""""""""""""""""9&"
""
"""""""""""""""".B"
""""""""""""""""""""""""""""#0"
""""""""""""""""""""""数据加载完成的后续处理
""""""""""""""""""""""C"
""""""""""""""""""""C0"
""""""""""""""""(!@/(B"""
""
""""""""""""""""""""9&"
""
"""""""""""""""".B"
""""""""""""""""""""""在这里加载数据
""""""""""""""""""""""#,D0"
""""""""""""""""""""""C"
""""""""""""""""""""C0"
""""""""""""""""!@#0"
E#
基本规则做到:耗时批量数据后天另起线程异步操作
1将 <中初始化的内容,移动到线程中做初始化,加载等
2初始化完成之后,通过 % 发送消息,
E%中收到消息后,再初始化完整界面。
通过这样的思路,能让界面快速显示,而不是显示黑屏。
代码原型:
.4B
"""9&
"""<;)B
""""""#<)0
""""""<-##'0设置 布居
"
""""""使用线程异步加载数据,不阻塞界面。
""""""(B
"
"""""""""9&
""""""""".B
""""""""""""(&A&.
""""""""""""#0
""""""""""""A0
"""""""""C
"""""""""
""""""C#0
剩余23页未读,继续阅读
xiangrikui0109
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1