Anddroid 性能优化一 UI性能优化

UI性能优化思路就是减少ui加载的时间,提高流畅性。

布局优化

思路:减少布局层级,减少布局复杂度,减少绘制时间

1.在不需要嵌套的情况下,使用LinearLayout或者FrameLayout代替RelativeLayout

2.需要嵌套情况下,使用RelativeLayout代替LinearLayout。

3.使用 标签

标签用于布局的复用,标签用于被复用的布局中,减少布局的嵌套层级。

include标签只支持layout属性和id,如果include有id,被复用的布局也有id,以include的为准,

4.使用标签

该标签可以将布局按需加载,提高ui初始化的效率。

通过setVisiablity()或者inflate()方法加载ViewStub,注意ViewStub对象只能使用一次,setVisiablity之后就失效了,需要频繁控制显隐的时候,需要使用内部的View。

绘制优化

View的onDraw中避免创建局部对象,否则产生大量临时对象,系统频繁gc,影响效率。

onDraw 中避免进行耗时操作,包括循环等。

检查View是否有过度绘制的情况,可以在手机的开发者选项中开启该选项。

ListView 和GridView优化

listView的优化同样遵循上面的规则,

思想:getView()中减少不必要的操作,逻辑,绘制等

1.使用ViewHolder,减少find次数
2.滑动情况下减少不必要的操作,如加载图片,开启异步任务
3.可以开启硬件加速
4.在listview列表的item中避免使用weight属性

ui性能优化工具

1.eclispse自带的hierarchy Viewer

使用Hierarchy Viewer工具检查,View Hierarchy 窗口还可以帮助你找到性能问题。只要看每个View节点的性能指标(颜色点)就可以,你可以看到测量(布局或绘制)最慢的View对象是哪个,这样你就能快速确定,要优先察看哪个问题。

2.手机的开发者选项的过度绘制查看选项,可以减少布局的过度绘制。

Gpu overDraw显示颜色减少红色区域

开启profile gpu rendering 一条柱状线都包含三部分,

蓝色代表测量绘制Display List的时间,红色代表OpenGL渲染Display List所需要的时间,黄色代表CPU等待GPU处理的时间

3.traceview,用于查看耗时方法,定位性能瓶颈。

使用参考:http://blog.csdn.net/androiddevelop/article/details/8223805

你可能感兴趣的:(Android)