android改进布局性能

对于android应用程序的用户体验来说,布局的影响是很直接很关键的一部分,不合理的布局可能导致内存饥饿,和反应不灵敏,改进布局性能,可以降低内存占用使界面更平滑。

一、优化布局结构

使用嵌套实例LinearLayout可能会导致比较深层次的嵌套,嵌套LinearLayout使用该layout_weight参数的几个实例每个子元素需要测量两次,当用于ListView中时布局被重复地膨胀。

Android SDK工具包括一个名为Hierarchy Viewer的工具,可让您在应用程序运行时分析您的布局。使用此工具可以帮助您发现布局性能的瓶颈。
层次查看器可以通过允许您在连接的设备或模拟器上选择正在运行的进程,然后显示布局树。每个块上的交通信号灯表示其测量,布局和绘图性能,可帮助您识别潜在的问题。

使用嵌套实例LinearLayout

可以看到有一个3层次的层次结构,在布置文本项目时会出现一些问题。可以点击项目显示每个阶段的时间,以此来衡量,布局和渲染,以及您应该花时间优化哪些地方。

修改后

因为上面的布局性能由于嵌套而减慢LinearLayout,所以性能可以通过平铺布局来改善 - 使布局变浅而不是狭窄而深入。A RelativeLayout作为根节点允许这样的布局。因此,当将此设计转换为使用时RelativeLayout,可以看到布局变为2级层次结构。
大多数时间差异是由于layout_weight在LinearLayout设计中的使用,这可能会降低测量速度。

二、复用布局

**使用**include和merge标签在当前布局中嵌入另一个布局。
创建一个准备重用的XML布局文件并定义好内容,在需要使用的地方添加include标签@layout指向重用的XML文件,并可以修改该布局根视图的所有布局参数。

merge 当在另一个中包含一个布局时,该标签有助于消除视图层次结构中的冗余视图组。例如,如果您的主要布局是垂直的LinearLayout,其中可以在多个布局中重新使用两个连续的视图,则放置两个视图的可重用布局需要自己的根视图。然而,使用另一个LinearLayout作为可重用布局的根将导致垂直LinearLayout内部的垂直LinearLayout。LinearLayout 除了减慢您的UI性能之外,嵌套不提供真正的目的。
为了避免包含这样一个冗余视图组,您可以使用该 merge元素作为可重用布局的根视图

三、ListView的数据处理

在后台线程中加载网络数据,图片等,完成后在通知UI线程更新;
使用ViewHolder来保存视图,避免重复去findViewById()控件,节约处理器周期。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值