android 布局优化

来源:互联网 发布:一键安装nginx 编辑:程序博客网 时间:2024/06/07 23:33

1通过打开开发者选项中的 显示GPU过度绘制

1. 颜色标识: 从好到差:蓝-绿-淡红-红1. 蓝色1x过度绘制2. 绿色2x过度绘制3. 淡红色3x过度绘制4. 红色超过4x过度绘制2. 验收标准:1. 控制过度绘制为2x2. 不允许存在4x过度绘制3. 不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)

1. 尽量多使用RelativeLayout和LinearLayout, 不要使用绝对布局AbsoluteLayout,1. 在布局层次一样的情况下, 建议使用LinearLayout代替RelativeLayout, 因为LinearLayout性能要稍高一点.2. 在完成相对较复杂的布局时,建议使用RelativeLayout,RelativeLayout可以简单实现LinearLayout嵌套才能实现的布局.2. 将可复用的组件抽取出来并通过include标签使用;3. 使用ViewStub标签来加载一些不常用的布局;4. 动态地inflation view性能要比SetVisiblity性能要好.当然用VIewStub是最好的选择.5. 使用merge标签减少布局的嵌套层次6. 去掉多余的背景颜色7. 对于有多层背景颜色的Layout来说,留最上面一层的颜色即可,其他底层的颜色都可以去掉8. 对于使用Selector当背景的Layout(比如ListView的Item,会使用Selector来标记点击,选择等不同的状态),可以将normal状态的color设置为”@android:color/transparent”,来解决对应的问题9. 内嵌使用包含layout_weight属性的LinearLayout会在绘制时花费昂贵的系统资源,因为每一个子组件都需要被测量两次。在使用ListView与GridView的时候,这个问题显的尤其重要,因为子组件会重复被创建.所以要尽量避免使用Layout_weight10. 使得Layout宽而浅,而不是窄而深(在Hierarchy Viewer的Tree视图里面体现)

1、布局重用

<include />

2、减少视图层级

<merge />

使用详情点击这里

另外有两点需要特别注意:

1.只可以作为xml layout的根节点。

2.当需要扩充的xml layout本身是由merge作为根节点的话,需要将被导入的xml layout置于 viewGroup中,同时需要设置attachToRoot为True。

1 0
原创粉丝点击