美文网首页
Android性能调优工具之Hierarchy Viewer的使

Android性能调优工具之Hierarchy Viewer的使

作者: wind_sky | 来源:发表于2019-08-01 15:04 被阅读0次

    一.简介

    Hierarchy Viewer是聚合在Android Device Monitor里的一个工具,可以使我们在页面层级中检查view的属性和布局的速度,有助于找到由于view层级导致的性能瓶颈,进一步帮助我们简化页面,减少过度重绘。

    二.使用

    1.打开方式

    在Android Studio中通过 Tools → Android → Android Device Monitor 打开,点击 image.png

    选择Hierarchy View即可在DDMS旁显示图标。

    2.使用

    如果是模拟器或者开发版手机,则可以直接连接调试,值得一提的是,当打开Android Device Monitor时,因为对adb的占用点击Android Studio的运行按钮无法成功,因此需要关掉ADM再点击运行。

    真机无法直接使用Hierarchy Viewer,需要进行相关的配置。

    可使用如下方法进行,主要是通过添加第三方库ViewServer:

    第一步:在项目中添加依赖,在build.gradle(Project:project_name)中添加

    allprojects {  
    
        repositories {
    
          ... ...
    
          maven { url "[https://jitpack.io](https://jitpack.io/ "https://jitpack.io")" }
    
       }
    
    }
    

    在build.gradle(Moudle:app)中添加

    dependencies{
    
        ... ...
    
        compile 'com.github.romainguy:ViewServer:017c01cd512cac3ec054d9eee05fc48c5a9d2de'
    
    }
    

    第二步:在需要测试的Activity中添加如下代码,启动ViewServer

    public void onCreate(Bundle savedInstanceState) {
    
       super.onCreate (savedInstanceState);
    
       ViewServer.get(this).addWindow(this);
    
    }
    
    public void onResume() {
    
       super.onResume();
    
       ViewServer.get(this).setFocusedWindow(this);
    
    }
    
    public void onDestroy() {
    
       super.onDestroy();
    
       ViewServer.get(this).removeWindow(this);
    
    }
    

    注:有时可能需要声明网络权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    

    三. 分析页面

    1.页面理解

    界面左侧有设备和正在运行的Activity,双击该Activity可以查看其布局层级的TreeView


    image.png

    在TreeView中选中一个节点,点击如图按钮


    image.png

    可以查看该view三大过程即Measure,Layout,Draw消耗的时间


    image.png

    三个圆点大致对应于measure,layout,draw的过程,可能出现三种颜色即绿,黄,红。

    • 绿色表示该view的此项性能比至少50%的其他view要好,

    • 黄色表示该view的此项性能比50%的其他view要差,

    • 红色表示此项性能的水平在最慢的50%view之中。

    2.结果解释

    Hierarchy Viewer测量的是每个节点相对于其他view的表现,所以总是会有红色的圆点,所以红色圆点不一定说明这个过程在实际表现中很差。Hierarchy Viewer通过栅格化布局来获得时间信息,栅格化是将高级的图形变成屏幕上的像素点的过程。通常,栅格化在手机上是由GPU完成的,但是在使用软件进行栅格化的情况下,渲染是由CPU完成的,这就说明,报告中的时间在view相对之间是正确的,但是不能反映真机上的表现速度。

    然而,红色圆点确实是一个潜在的问题,当APP页面出现一些明显的性能问题时,可以针对红点进行进一步分析。关于布局优化,是另外一个内容。

    参考文档:https://developer.android.com/studio/profile/hierarchy-viewer.html

    相关文章

      网友评论

          本文标题:Android性能调优工具之Hierarchy Viewer的使

          本文链接:https://www.haomeiwen.com/subject/eznqdctx.html