Android启动体验优化--启动白屏黑屏优化
## 背景:在我们点击手机桌面应用程序图标->到app渲染出第一个activity的这个过程中,不知道大家有没有留意到,当app很久没有打开过,或者是app杀死了,再打开的时候,会有那么一瞬间的白屏或者黑屏??这个时间取决于你的手机性能,差一点的手机特别明显
**①这个白色或者黑色,是什么?**
**②如何修改这个颜色?**
**③如何优化体验?**
#### 问题1:
从配置文件的主题入手,把这个颜色挖出来。
小司机坐稳扶好。
当我们创建一个项目之后,打开配置文件,可以看到application标签下有个theme,这个theme有一个默认的配置,红色框地方,我们打开这个主题看看(Ctrl + 鼠标左键可以进入)
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lwuiACb7RAARvyRHpXys051.png)
进入之后:
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lw7CAZZTtAAJzncNIuSc697.png)
这个主题是继承其他主题,OK,一直挖,注意留意属性,一直到根主题的时候
我们发现是这样的:
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lxAOAN9eJAAaqcWxBSUA800.png)
留意:
```
<item name="windowBackground">@drawable/screen_background_selector_light</item>
```
这是窗体背景,就是这个东西,我们点击桌面icon,到第一个activity创建完成的中间那段时间,我们看到的,就是这个**windowBackground**
打开这个背景的xml:
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lxPGARO7GAAVL7OSmg9s164.png)
这个预览的颜色,就是我们看到的那个不和谐的颜色。
#### 问题2:修改这个背景,我们可以复写这个属性,修改成其他颜色或者图层,达到一个更好的体验
继承这个默认主题,然后重新赋值给window background,就达到了效果
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lxcqAZXjLAAPtgntesGI817.png)
这个背景,可以是一个具体的png,jpg图片,也可以是一个xml资源文件(图层)
如果是一个具体图片资源,不同手机的宽高比是不同的,会变形,如果想不懂会变形的,自己好好琢磨下。
#### 问题3:优化
上面说了,不能放图片,会变形,那,放什么才不会变形?
自定义图层!!
看效果:
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lxzeAa6q5AAa8mJ7zVeM658.png)
就好像我们平时写布局一样,定制一个资源的位置,这样配置可以做到启动页更加美观,当然这个xml资源可以增加多个图片资源,定义在不同的位置,(顶部,中间,底部)背景颜色什么的都可以。这个背景是我们启动优化看到的一瞬间的内容。
最后,我们把这个xml文件配置到window background上面就可以了,把启动页面的主题设置下。
![图片描述](https://imgs.sunofbeaches.com/group1/M00/00/0F/rBsADV4lyDOARfepAAP5L7DeiPI018.png)
这样启动优化就完成了,
感谢你能看到这里,如果不明白我在干什么,或者不知道这样做的好处,以后当你遇到启动页优化,就会体会到了~~
再次强调:这个启动优化针对点击桌面icon之后到第一个activity渲染之后的那一段时间(产生的白屏或者黑屏) 补充一下白屏或者黑屏为什么会出现,Android App在冷启动的时候(不存在对应App的进程)会先创建进程,在启动指定的Main Activity 的时候回先创建Window ,这个在Android源码里可以看到,这个window就是PhoneWindow,我们看到的白屏或者黑屏就是这个window,至于其颜色与我们设置的Activity Theme决定。
详情可查看https://blog.csdn.net/u010340035/article/details/78501610 lanxiqingmo 发表于 2021-3-14 09:07
这个就是安卓动画优化不好吧,虽然在安卓8.0速度就超过苹果了,但是动画做的不好,流畅度还是感觉ios快,原生的 ...
不是动画问题,是第一次打开app的时候,创建app进程,到看到第一个页面渲染完成这个过程中。就是白屏的。这是系统机制问题。
当然了,现在Android上面的配置很高,这个创建的过程的时候,会缩短,到了你觉得还行的感觉。
如果换一台低配的手机,这个问题就会特别明显。
而且现在绝大部分的app都做了文章这种启动优化,从点击到第一个页面展示中间设置了默认元素。
默认开发的app是没有的。
后台管不了,是系统机制问题,有很多app利用bug一直活着,吃系统资源。
现在国内很多厂商都有后台管理机制,比如小米这种,可以完全禁止app自启动。禁止别的app拉活。 这个就是安卓动画优化不好吧,虽然在安卓8.0速度就超过苹果了,但是动画做的不好,流畅度还是感觉ios快,原生的安卓还得用冰箱黑域这些,连后台也管不了也是服了{:17_1061:} 现在的手机操作系统都有做相关优化,开发者没必要自己再弄了,我现在的手机已经感知不强了 小白什么不懂,挺难的 的确有些红米4 5百的机子有这个问题,一直没有去管,周一去试下 老机器又复活了哈哈哈 老手机优化可以尝试一下 两年前的手机,优化的不错 老机有救了,新机没问题,谢谢!
页:
[1]
2