前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >优化App冷启动,实现启动页错觉秒开

优化App冷启动,实现启动页错觉秒开

作者头像
木溪bo
发布于 2018-12-27 02:09:28
发布于 2018-12-27 02:09:28
2K0
举报

APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态的,这可能会让用户会以为没有点到APP而再次点击,极大的降低了用户体验,Android需要及时做出反馈去避免这段时间的尴尬。于是系统会根据你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏。这个黑(白)屏就称为Preview Window,即预览窗口。

安卓启动方式一般有3种:

>Coldstart——冷启动:

此种方式最为耗时,一般是因为进程被干掉或者是第一次启动app,系统需要重新fork进程进行一系列初始化,后台没有该应用的进程。

>WarmStart ——暖启动

比ColdStart稍快,当app的Activities被销毁,但还在内存中常驻时启动方式会变为暖启动,app并没有被杀掉,所做的只是把app从后台提到前台来展示,并不需要重走初始化一系列行为,减少了对象初始化、布局加载等工作。但其表现行为与冷启动一致,还是会先显示一个Preview Window(黑白屏)直到app渲染activity。

如果由于响应了低内存事件,例如在onTrimMemory()方法中清除了资源对象,那么这些对象就需要在热启动时重新创建。

>LukeWarm Start——热启动

启动方式最快,比暖启动开销小,类似于按返回键back、home键退出应用又立即进入的那种行为,后台已有该应用的进程。

接下来看看如何优化冷启动:

既然我们已经找到这个黑白屏是出自系统的预览窗口,我们就可以通过操控这个窗口来实现。这个预览窗口是在activity启动页前显示的一个安卓优化措施,我们可以从主题中可以找到,是可以设置这个窗口配置的。

1.更改窗口的颜色背景

2.设置窗口全屏显示

在Manifest文件中的启动页activity添加自定义的主题android:theme="@style/SplashTheme"

接下来看看style的属性配置,注意父主题使用parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"最佳

以上name="android:windowBackground”背景你可以设置多种,如果是设置为透明要将<item name="android:windowIsTranslucent">true</item>设置为true,当点击运行app后是透明背景的,给人的一种系统响应慢的错觉,完美甩锅。若是设置一张图片,也要设置<item name="android:windowIsTranslucent">false</item>,即可实现秒开闪屏效果。而我这里是在drawable中新建splashx_bg.xml使用bitmap位图设置的背景图,能够对图片做更多的设置操作。

最后注意:Preview Window设置的背景图如果不做处理,图片就会一直存在于内存中,所以,当我们进入到欢迎页的时候可不要忘了把背景图设置为空

透明背景:

透明背景

位图bitmap加载:

位图bitmap

直接设置图片:

图片

2018/11/2最后补充一下需要注意:在Android 8.0即api26,谷歌对于AndroidManifest.xml中设置了锁定屏幕android:screenOrientation="portrait"的透明activity会报以下错误“Only fullscreen opaque activities can request orientation”,经测试不管是否全屏都如此,在8.1后谷歌修复了这个bug,解决方法我个人是去掉锁定屏幕设置或者将theme中的透明背景设为不透明。参考传送门

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android启动页黑屏及最优解决方案
相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。那么这个黑屏或者白屏到底是怎么一回事呢?它的最好的解决方案应该是怎样的呢?今天我们认真的讨论一下这个小问题。
用户1269200
2018/08/14
1.8K0
Android启动页黑屏及最优解决方案
5分钟教你打造一个秒开的 Android App
MatthewF
2017/07/04
4.3K3
5分钟教你打造一个秒开的 Android App
Android项目实战(四十二):启动页优化,去除短暂白屏或黑屏
  大家会发现一个空项目,从手机桌面打开app是秒启动。但是对于自己开发的项目,有时会发现打开app的时候,会有短暂的1秒--2秒的白屏或者黑屏,然后才进入到程序界面。   个人理解为我们自己实现的Application文件里面做了较多的初始化操作,当这些初始化操作完成后才进入到第一个Activity,这段初始化的时间因为没有界面,应用便会因为主题的类别而显示白屏或者黑屏。   构成白屏/黑屏的原因代码如下: /** * @author xqx * @email djlxqx@163.com * blog:
听着music睡
2018/05/18
1.3K0
App冷启动,你还要我怎样?
首先我们得知道为什么会出现这个白屏的,在AndroidManifest.xml配置文件里面,你会看到你的LAUNCHER activity的配置
Android技术干货分享
2020/04/23
1.7K1
App冷启动,你还要我怎样?
react-native 启动页
检查./app/src/main/res/layout/launch_screen.xml 是否存在,默认应该是没有layout文件夹的,需要手动创建layout文件夹,然后在layout文件夹下新建launch_screen.xml,将以下内容复制进去:
conanma
2021/11/02
1.4K0
你的 APP 为何启动那么慢?
可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动的优化也是最具挑战的。因此本文重点谈论的是对冷启动相关的优化。
刘盼
2019/05/08
1.9K0
你的 APP 为何启动那么慢?
Android 音乐APP(二)启动白屏优化、定位当前播放歌曲
  Android应用冷启动时,又会短暂的黑屏或者白屏,然后才会进入主页面,黑屏是在Android版本低的时候才会出现,比如Android4.4、5.0。而现在的Android版本出现的就是白屏。这个虽然不应用功能的使用,但是对用户来说体验感并不好。那么怎么解决这个问题呢?我相信很多的博客都有这个方面的讲解,但是真正有良好体验的比较少,下面的这种也是参考了网易云音乐的启动方式。
晨曦_LLW
2020/10/26
1K0
Android 音乐APP(二)启动白屏优化、定位当前播放歌曲
关于APP冷启动与热启动的区别及冷启动出现的白屏解决办法
其次就是关于冷启动出现的白屏解决问题,排除是代码的逻辑繁琐产生的启动白屏或是黑屏问题(可以在启动页设置一个图片,当启动完图片的时候会不会出现黑屏或者是白屏来判断是不是代码的逻辑问题,具体设置方法在底文给出)。
胖虎哥
2023/05/10
8290
冷启动与热启动,AsyncTask,HandlerThread,IntentService,Service 保活,IntentService
app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。
zhangjiqun
2024/12/16
830
2019 Android 高级面试题总结 从java语言到AIDL使用与原理
a.建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如Camera开发过程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成像质量等等,这种场景下就可以使用建造者模式
Android技术干货分享
2019/03/27
8480
5分钟教你打造一个秒开的 Android App
背景 近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。话不多说先上优化前后效果图: 买家秀(gif): 淘宝秀(gif): Android App启动流程: 俗话说要想优化好,流程不可少!关于android app启动的流程图如下: 总结一下一个完成的冷启动app过程应该是经过: Zygote Fork Proccess -> Application:attachBaseContext() -> Ap
腾讯Bugly
2023/04/02
7260
5分钟教你打造一个秒开的 Android App
Android性能优化系列之App启动优化
应用的启动速度缓慢是我们在开发过程中经常会遇到的问题,比如启动缓慢导致的黑屏,白屏问题,本篇博客就将介绍App启动优化的相关知识。
老马的编程之旅
2022/06/22
7160
Android性能优化系列之App启动优化
性能优化(一)APP 启动优化(不敢说秒开,但是最终优化完真不到 1s)
这里也许会有人问 APP 启动还需要优化吗?启动又不是我们自己写的代码,难道 Google 工程师会犯这么低级的错吗?其实这还真不是 Google 的错,应该说是给我们开发者留了一个坑吧。应该有的同学知道是怎么一回事儿了,当我们在系统桌面任意点击一个 APP 是不是会发现启动的时候有一瞬间有白屏出现(以前老版本是黑屏) 那么我们怎么来优化这个黑白屏的问题勒,现在我们先来了解一下 Android 手机重开机到启动 APP 的过程吧。
Android技术干货分享
2019/05/10
8910
性能优化(一)APP 启动优化(不敢说秒开,但是最终优化完真不到 1s)
App 启动优化
adb shell start am -W packname/首屏activity
Yif
2020/04/23
1.4K0
App 启动优化
Android 性能分析学习(启动速度优化)
启动速度是用户体验app的第一感官,所以如果APP卡顿的话,给用户的体验会非常的糟糕。 本文主要针对这点进行的分析学习以及记录。
艳龙
2021/12/16
9050
Android 性能分析学习(启动速度优化)
android 白屏
从首篇介绍我为什么写文章到现在已经过去好久.......(懒),但从此刻开始,不出意外情况每周给大家至少写一篇文章,就按平时app开发流程以及本人遇到的问题,从app欢迎页面开始吧!
android_薛之涛
2018/09/12
1.1K0
android 白屏
Android 启动优化说明、黑白屏处理
Android 启动优化说明、黑白屏处理 前言 正文 一、启动来历 二、启动说明 1. 冷启动 2. 热启动 3. 温启动 4. 冷启动流程 5. 优化时间 6. 优化方案 三、黑白屏处理 1. 创
晨曦_LLW
2022/03/11
1.2K0
Android 启动优化说明、黑白屏处理
Android性能优化(一)—— 启动优化,冷启动,热启动,温启动
App启动方式分三种:冷启动(cold start)、热启动(hot start)、温启动(warm start)
233333
2024/06/28
2800
Android性能优化(一)—— 启动优化,冷启动,热启动,温启动
相关推荐
Android启动页黑屏及最优解决方案
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文