(2016年4月6日)
1、使用<merge>合并标签,减少层级
借助Hierarchy Viewer工具,点击Open PerspectiveHierarchy Viewer工具,在左边选择要抓取界面的进程,点击Load the view hierarchy into the tree view
,便可以生成下面的示例图层
截取上面的局部图分析我的优化例子
这里有些结点上只有一个child view,而且有好几层,所以布局时会影响性能,只有一个child view的布局,可以考虑在xml中用<merge>标签来代替
下面是布局改变前后
改变后,再抓取一次Hierarchy View
这样,布局层级就减少了两层。这里值得注意的是,使用merge标签,如果把布局inflate出来,inflate的时候它的parentView一定不能为空
2、使用<ViewStub>标签
小技巧:如果布局太多,搜索android:visibility="gone",布局默认为gone说明都有可能使用viewstub标签代替
性能优化参考资料:
http://stormzhang.com/android/2014/04/10/android-optimize-layout/
http://www.trinea.cn/category/perf/
https://github.com/Juude/awesome-android-performance
http://hukai.me/blog/archives/
http://yanghui.name/blog/2015/02/01/2015-1-31-ali-technical-salon/