zoukankan      html  css  js  c++  java
  • 性能优化之_android布局优化

    优化布局的的原则就是减少创建的对象的数量,setContentView话费onCreate到onResume中的大概99%的时间
    1.使用Relativelayout而不是LinearLayout,LinearLayout会导致增加嵌套层次和LinearLayout本身的数量(LinearLayout不起任何显示作用,只是用来定位)
    2.使用<merge>代替Framelayout,因为Activity的父视图是一个Framelayout,所以用<merge>可以减少一层布局容器控件
    3.用<include>来重用布局,或者适应横竖屏切换时布局的转换
    4.用viewStub占位,推迟实例化,运行时inflate这个viewStub
    5.使用工具hierarchyviewer和layoutopt

    自定义view方面

    1.不要频繁的调用onDraw,消除不必要的invalidate方法的调用。调用四个参数的invalidate方法最好,因为可以指定部分区域重绘

    2.在onDraw不要new对象,因为onDraw里面new出来的对象都是局部变量,大量对象创建会导致系统垃圾回收从而导致卡顿。应该在初始化时创建对象,或在动画间。永远不要在动画运行时创建

    3.视图不能创建层次太多

    4.如果有一个复杂视图,应该考虑写一个自定义的ViewGroup去执行他的布局,你的自定义视图可以专为这个程序假定子控件的尺寸和形状.以此避免子控件的遍历计算

    5.开启硬件加速。移动GPU擅长于某些的任务,像缩放,旋转,转换位图。它们不擅长其他像画直线或曲线的任务。

  • 相关阅读:
    HTML area coords 属性
    在Java中,替换字符串String中特定索引处的字符char?
    JavaScript 之 history对象
    JavaScript 之 location 对象
    JavaScript 之 定时器
    JavaScript 之 页面加载事件
    JavaScript 之 对话框
    JavaScript 之 BOM
    Java 之 可变参数
    Java 之 LinkedHashSet 集合
  • 原文地址:https://www.cnblogs.com/soaringEveryday/p/4347552.html
Copyright © 2011-2022 走看看