• 视图优化


    追踪过度绘制

    Show GPU Overdraw工具

    在手机的开发者选项里打开“Show GPU Overdraw toggle this”,这时打开手机,应用上就会出现一层颜色蒙版,其中:

    没有颜色: 意味着没有overdraw。像素只画了一次。
    蓝色: 意味着overdraw 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
    绿色: 意味着overdraw 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
    浅红: 意味着overdraw 3倍。像素绘制了四次,小范围可以接受。
    深红: 意味着overdraw 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。
    
    GPU Profiler
    蓝色: 表示测量绘制时间
    红色: 表示执行时间、
    橙色: 表示处理时间
    

    避免UI卡顿:

    • 避免在onDraw中创建对象
    • 使用对象池
    • 减少View层级
    • 避免在UI顶层使用RelativeLayout-------其measure两次
    • 自定义控件控制绘制的复杂度

    优化过度绘制

    降低View层级

    • RelativeLayout代替LinearLayout

      使用merge标签,不需要指定父容器
      
    • 不必要的背景

      去掉window默认背景
      getWindow().setBackgroundDrawable(null);
      去掉不必要的背景
      
    • ClipRect和QuickReject
        ClipRect 只绘制和渲染指定的区域
        QuickReject  节约GPU资源
      
    • ViewStub 占位符
    • .9图用作背景





  • 相关阅读:
    IDEA 运行junit单元测试方法
    IDEA 修改编码
    接口文档word版
    java 上传文件到七牛云中
    单例模式
    洛谷P3092 [USACO13NOV]没有找零No Change
    Codevs 1159 最大全0子矩阵
    洛谷P2733 家的范围 Home on the Range
    洛谷P2280 [HNOI2003]激光炸弹
    洛谷P2023 [AHOI2009]维护序列
  • 原文地址:https://www.cnblogs.com/wisemen/p/5820366.html
Copyright © 2020-2023  润新知