布局核心准则

Android系统在解析XML布局后,会根据XML文件对界面进行绘制。绘制通常分为三步,即measure、layout、draw。对于每一个ViewGroup的绘制来说,系统首先会遍历它的每一个子View(即深度优先遍历)。因此随着布局深度的加深,遍历每个子View的时间便会呈指数级上升,相信做过自动化测试的开发者一定深有体会。遍历一级页面可能只要几分钟,遍历二级页面可能要几个小时。但继续下去,遍历三级、四级页面可能就要好几天。Android的界面绘制与这个道理类似。因此对于Android布局来说,其核心准则就是尽量使布局的View树扁平,降低布局的层级。Google也建议,用户界面的View不宜超过8层。如果超过太多,会对性能造成极大影响。除了降低布局树的层级,提高View的使用率也是优化的关键。例如,通过include标签进行View的复用,通过DrawableLeft、DrawableRight这种方式来进行控件组合,等等。

布局核心准则 - 图1当然,最需要修改的还是尽可能地减少View的数量!