Android性能优化-布局

方向

  • 正确性
  • 采用合适的布局方式
  • 避免频繁多余计算
  • 懒加载
  • 代码重用(从工程层面考虑)

说明

正确性

关于正确性,即严格按照视觉稿进行布局。布局正确的重要性高于性能层面,毕竟那是用户最直观的感受。

调整布局时,有需要的时候建议打开「开发者选项-显示布局边界」

布局方式

要保证布局的正确性,首先得选择正确的布局方式。实际上,现在最常用的布局方式就是RelativeLayoutLinearLayout

大部分情景下,相对布局和线性布局在性能上的差异并不明显。涉及控件重叠的情景,一般使用相对布局;而线性排列属性明显的界面一般使用相对布局(虽然用相对布局也可以实现甚至性能稍优,但这种情景下线性布局的代码可读性、拓展性更强)。

避免频繁多余计算

Android的布局极少使用绝对布局,因此无论是哪种布局,在系统层面,控件的尺寸、位置都需要重新计算。(一般情况下线性布局的计算量会比相对布局大一些)

关于visibility官方的简单说明

关于View的显示状态,这里讨论invisiblegone的区别;由官方说明可知,两者的共同点是不可见,区别在于invisible依然占用着布局空间,gone不占用布局空间。

因此,若一个View在visiblegone之间切换,会使布局空间进行重新计算;在一些情景下,如频繁显示的加载指示图,使用invisible取代gone能够避免一些多余计算。

当然在很多线性布局中,是明确需要gone属性的,具体问题具体分析。

懒加载

按需加载:
http://developer.android.com/training/improving-layouts/loading-ondemand.html

Sometimes your layout might require complex views that are rarely used. Whether they are item details, progress indicators, or undo messages, you can reduce memory usage and speed up rendering by loading the views only when they are needed.

官方文档的说明,然后介绍了viewstub,使用相对简单。

可参考:
http://developer.android.com/reference/android/view/ViewStub.html
http://blog.csdn.net/hitlion2008/article/details/6737537

代码重用

一些重复使用的控件代码,使用include

转载自http://benlai.fangqk.com/?p=48

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值