基本的优化总结(五)

2018-06-22  本文已影响29人  范锦浩

导言

这一节主要介绍测量/布局/绘制的检查工具Hierarchy,上节提到了一些优化手段,不过这也需要工具来帮助我们确认整个优化的效果

使用准备

1.首先打开Android Device Monitor,也就是DDMS
2.点击Hierarchy View
3.如果此时没有反应或者提示连接失败,那么可以使用ViewServer来辅助,有的话忽略后面的行为
4.导入ViewServer之后在想要分析的页面使用,如果无法通过依赖导入,那么可以直接通过import module的方式来添加

实例
接着在想要进行分析的Activity中添加指定代码即可,当然了,如果项目中有BaseActivity的话,直接在Base里面添加就OK了
class TestMeasureActivity : Activity(){
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test_rl_measure)
        ViewServer.get(this).addWindow(this)
    }

    override fun onResume() {
        super.onResume()
        ViewServer.get(this).setFocusedWindow(this)
    }

    override fun onDestroy() {
        super.onDestroy()
        ViewServer.get(this).removeWindow(this)
    }

}

5.重启DDMS,然后点击Hierarchy View

使用

实例

重点看图中的三个红框
1.右上角的按钮:首先选中顶层视图,然后点击右上角的按钮,此时就会把圆点等数据显示出来
2.三个圆点:从左到右分别表示测量、布局和绘制的耗时相对状态,红色表示是整个绘制当中占比时间比较大的,是最值得关注的,黄色次之,其次才是绿色
常用于找寻重灾区,从而进行局部优化
3.框内的具体数据:其实就是测量、布局和绘制所花费的具体时间,之前的文章提到用Systrace来看,明显不如使用Hierarchy View来看的实际,非常的明显,优化的效果也很直接
4.Hierarchy View非常直观的展示了视图的层级,从而可以方便我们进行优化,比方说找寻同样的节点进行merge优化等等

总结

Hierarchy View提供了一个非常好的方式来分析视图层级和测量、布局及绘制的效率,对于开发者来说实在是不能更方便了

文章系列:
基本的优化总结(一)
基本的优化总结(二)
基本的优化总结(三)
基本的优化总结(四)
基本的优化总结(五)
基本的优化总结(六)
基本的优化总结(七)

上一篇下一篇

猜你喜欢

热点阅读