阅读本文大概需要 2.6 分钟。
在众多高频面试题中,Android性能优化几乎可以说是必问的考题。
而此题一出,一场恶战已然拉开序幕,因为此话题牵扯面非常广,绝非三言两语就能够聊完。因此,非常有必要对性能优化做一下系统性的总结。
此篇作为性能优化系列开篇,是因为UI渲染优化最为初级,且杂项很多,面试时可以作为回答的起点。
对于UI渲染优化,记住一个宗旨:尽量减少layout布局嵌套层级和View个数。后面几项其实都是围绕着这个宗旨来做具体的优化的。
减少嵌套层级是减少View树的深度,原因一是如果View树过深,会导致findViewById()方法查找耗时,因为findViewById始终是从rootView开始深度优先遍历,二是会导致绘制重叠,从而造成过度绘制。
减少View个数,不言而喻能用最少的View个数实现UI效果,能够避免不必要的测量,放置,绘制的计算时间,和View的查找时间。
从代码的可读性和可维护性上来讲,最简洁的东西也是最好的。
一. 布局优化
1)尽量选用RelativeLayout,ConstrantLayout,LinearLayout,并发挥它们的特性