layout布局优化

layout布局优化

经过分析layout的加载过程和view的显示过程,我们已经能根据这两方面的进行针对layout的布局优化了,layout布局的优化从上面两篇中我们能知道,layout的布局尽量简单化,尽量少控件,view的属性尽量简化,view的背景尽可能的少用图片,画图总是消耗更多的资源。现在我们就这两方面进行优化。

layout中布局不要超过10层,超过10层开发工具就会提示你层数过多,如果你打开提醒的话。我们常用的5种布局,linearlayoutabsolutelayouttablelayoutframelayoutrelativelayout。还有自定义的groupview。这基本上是我们在布局的时候最常用的布局了。当然在新版本中还有android.support.contraint.constrainlayout,其中constrainlayout主要是为了弥补可视化的方式来编写界面,在androidstudio2.2中进行发布的,使用这个会导致适配性变差,但是这个有一点好处就是会减少布局嵌套,然后在遍历layout的时候更快速。

故布局的优化其实说白了就是减少层级,越简单越好,减少overdraw,就能更好的突出性能



因为布局文件相对比较简单,主要从两个方面进行优化吧,

一,是使用subview进行延后加载

viewstubview的子类。他是一个轻量级View,隐藏的,没有尺寸的View。他可以用来在程序运行时简单的填充布局文件

二,是使用merg减少layout层数

merge标签是作为include标签的一种辅助扩展来使用,它的主要作用是为了防止在引用布局文件时产生多余的布局嵌套。Android渲染需要消耗时间,布局越复杂,性能就越差。如上述include标签引入了之前的LinearLayout之后导致了界面多了一个层级

三,使用include进行layout的重用

include标签常用于将布局中的公共部分提取出来

四,尽量简化界面

尽量减少不用的控件的布局,在使用一个控件能做好的话不要使用两个控件,如背景图片相关等,不需要特意布局一个imageview,在textviewdrawleft属性就能搞定的情况下不使用imageviewtextview的组合

五,使用RelativeLayout,因为可以通过扁平的RelativeLayout降低LinearLayout嵌套所产生布局树的层级,一般情况下用LinearLayout的时候总会比RelativeLayout多一个View的层级。而每次往应用里面增加一个View,或者增加一个布局管理器的时候,都会增加运行时对系统的消耗,因此这样就会导致界面初始化、布局、绘制的过程变慢。

六利用工具尽可能的寻求可优化布局的层次,如androidlint工具



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值