性能优化之_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擅长于某些的任务,像缩放,旋转,转换位图。它们不擅长其他像画直线或曲线的任务。