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

2019-08-01  本文已影响0人  wind_sky

一.简介

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的过程,可能出现三种颜色即绿,黄,红。

2.结果解释

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读