美文网首页
View优化(二)

View优化(二)

作者: 小王泽哥 | 来源:发表于2016-04-10 20:27 被阅读106次

    接着上面的View优化的建议与方式
    2.2.推荐使用标签或控件:
    2.2.1.使用<include/>标签:

    1. 使用 <include/> 标签加载布局,<include/> 标签可以重复利用布局,来减少代码量,使布局代码整洁易读。如写一个titlebar的布局,然后在需要它的布局中用该标签引入;
    2. 布局文件较大时可将布局文件按一定结构分解开来,用<include/> 引入。
      2.2.2.使用<merge />标签
      使用<merge />可减少布局元素,优化布局层级。如果布局的根节点没有提供背景,留白之类的属性,可使用<merge />替换。<merge />标签极其有用。然而它也有以下两个限制:
      1)<merge />只能作为XML布局的根标签使用
      2)当Inflate以<merge />开头的布局文件时,必须指定一个父ViewGroup,并且必须设定attachToRoot为true,可参看Android系统源码inflate(int, android.view.ViewGroup, Boolean)方法。
      View优化_使用Merge。查看使用前后布局变化:
    使用merge时.png 未使用merge时.png

    2.2.3.使用ViewStub控件
    使用懒加载布局ViewStub,在需要时再对View进行inflate操作, 减少内存的占用;

    2.3.好的布局与差的布局对比:

    1. 好的布局:
    1. 精简的布局,尽可能少的View对象,Hierarchyviewer工具查看时无繁杂冗余的View对象
    2. GPU绘制次数尽可能的少, 显示GPU过度绘制时界面中蓝色和绿色区域偏多
    1. 差的布局:
    1. 定义的View过多,占用较多内存空间,Hierarchyviewer工具查看时有繁杂冗余的View对象
    2. GPU绘制次数过多,造成系统资源浪费,显示GPU过度绘制时界面中一片红

    3,开发过程中的优化方案
    1.常用控件封装好成类文件或布局文件,方便复用.

    1. Style的name命名中要包含颜色值、字体大小、线的宽度等不易查看记忆的信息,以方便查找复用, 如 <style name="text_666666_15sp">
    2. 字符串写在strings.xml中, 尽量不要写在代码及布局文件中;
    3. Colors.xml中定义的颜色值要在其name中体现,方便查找复用, 如
      <color name="color_88ffffff">#88ffffff</color>
    4. 常用Dip值也可统一定义到dimens.xml中;
    5. 自定义的一些drawable等控件中注释中写明控件特征,如button用的selecter中的颜色值,边框宽度是否圆角等信息;
      <?xml version="1.0" encoding="UTF-8"?>

      <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
      ......
    6. View隐藏时看需求是使用gone还是invisible, 优先使用gone。
      INVISIBLE和GONE的主要区别是:
      为INVISIBLE时,界面上控件不显示, 但保留了view控件所占有的空间;
      为GONE时,界面上控件不显示, 且不保留view控件所占有的空间;
      8.布局文件命名时遵循前缀表明类型的习惯,形如type_foo_bar.xml。例如: fragment_contact_details.xml,
      view_primary_button.xml,
      activity_main.xml.
      4,优化原则
      多从系统源码原理角度考虑,优化布局及view相关代码,提高系统性能。
      时间换空间: 内存不足,不能直接获取全部的数据,只能多花时间,一段一段的获取数据并显示;
      时间换时间: 开机优化, 开机的服务要启动,应用程序要启动加载;
      空间换空间: 大数据的交换和存储;
      空间换时间: 手机内存缓存,SD卡缓存。

    相关文章

      网友评论

          本文标题:View优化(二)

          本文链接:https://www.haomeiwen.com/subject/zroblttx.html