性能优化之_android布局优化

本文介绍如何通过使用RelativeLayout、merge标签、include标签、ViewStub及层级优化等技巧减少UI布局中的对象数量,提高应用性能。同时探讨了自定义View时的注意事项,如避免频繁调用onDraw、减少对象创建、合理利用硬件加速等。

优化布局的的原则就是减少创建的对象的数量,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擅长于某些的任务,像缩放,旋转,转换位图。它们不擅长其他像画直线或曲线的任务。

 

转载于:https://www.cnblogs.com/soaringEveryday/p/4347552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值