Android优化(1)--布局优化

手头的项目预计在九月份的时候需要进行整理改版,进行比较大动作的整改。整体功能的优化可能要提上日程。嗯,所以需要对内部的优化工作做一个提前的设计和整理工作。大概想了想,优化的工作大致可分三方面:

1.布局优化
2.设计模式的优化
3.代码的优化

布局的优化稍微简单一些,主要是对一些,重复资源文件进行整理规划。保证在承载layout的xml文件的时候尽可能的减小系统的开销,保证流畅性;设计模式的优化,打算从网络层,一些基本类型的适配器封装方面着手;代码的优化,感觉就比较繁琐了,由于现在的这个版本,当初开发的周期非常的短,加上又是从别人手上接过来的,所以很多逻辑比较繁琐,在后台的小版本迭代过程中,也没做大修改,至于导致的什么内存泄露等等一些问题,需要在九月份的时候进行检测修改!

今天就先对布局优化方面一些技术做一些记录。

一、过渡绘制问题

布局的问题,最直观的就是打开你的真机
开发者选项—>调试GPU过渡绘制
打开之后,会发现我们的手机变的花花绿绿的,还有浅蓝色等等,下面是B站android客户端的首页绘制情况
这里写图片描述

是不是很炫!炫的直晃寡人的狗眼!
这里写图片描述

OK,那是否是过渡渲染了呢?请看下图评测标准:

这里写图片描述

蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况,我们的目标就是尽量减少红色Overdraw,看到更多的蓝色区域。
产生的主要原因是:
1.不必要的背景颜色或背景图片
2.被遮挡的不可见部分

既然知道了导致过渡绘制的问题,那接下来就需要实施优化的方案了。
1.减少不必要的背景绘制,主要是xml文件
2.设置window的背景为空
3.安需显示占位背景图资源

当然,主要造成过渡渲染的原因是,背景的叠加造成的,所以布局的时候我们需要注意;还有一部分是我们自定义控件造成的,比如说drawRect()造成的重复绘制区域。
解决办法可参考:https://github.com/udacity/ud825-render/tree/1.21_overlapping_cards

二、布局的嵌套
其实布局的嵌套也是过渡渲染问题,之所以把它单独领出来说明,是因为它涉及到的是我们写布局的习惯,看似简单的布局,当使用不同的控件组合实现之后,View的层级关系可能就发生了变化,就可能造成过度渲染问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章