不合理的布局会使我们的应用程序UI性能变慢,HierarchyViewer是 Android Device Monitor 中内置的一种工具,该工具能够用可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计,让我们更好地检视和设计用户界面(UI),绝对是UI检视的利器.
1、本地安装SDK目录->sdk->tools->hierarchyviewer.bat(版本低,可能有未知bug)或点击同级目录的monitor.bat
2、Android Studio : 工具栏->Tools->Android->Android Device Monitor(官方推荐)
3、在命令行输入 hierarchyviewer(可用,但是启动的是版本低的)
1、设备连接
模拟器设备版本需要设置为 Android 4.1,真机需要手机root权限,成功后左侧Windows小手机会看到设备信息
2、打开Hierarchy View视图界面
点击Window->Open Perspective->Hierarchy View。就会看到如图界面,否则点击工具栏Window -> Reset Perspective 重启默认布局
1、相关窗口视图介绍
2、相关功能按钮介绍
1)Hierarchy Viewer 视图层次结构是布局的快照,因此不会自动更新。 要更新层次结构视图,点击右上角蓝色金字塔。
2)要想保存Tree View,点击右上角蓝色金字塔左边小文档使用,左边是PNG格式,右边
使用是PS的PSD格式。
3)如需使某个视图无效(请求在下一次布局更新期间对 onDraw() 进行系统调用),请选择层次结构中的相应视图,然后点击 Invalidate the layout 图标 (这与在视图中调用 invalidate() 等效)。 要请求实际布局视图(及任何子级),请点击 Request lay out 图标 。
4)如果需要转到其他应用,则必须从左侧面板的 Windows 标签页中选择该应用,以查看其视图层次结构。
5)如需查看视图的属性,请点击左窗格中的 View Properties 标签页。
6)要查看有关视图的详细信息,包括其度量、布局和绘制时间(如图 3 所示),请在 Tree View 中点击该视图。双击该视图可查看其放大图片。
7)点击右上Profile Mode按钮,可以检查节点布局绘制的时间是否合理。
1、圆点功能介绍
点击右上Profile Mode按钮后,节点的每个子视图都有三个圆点。
2、圆点颜色介绍
红色节点是代表应用性能慢的一个潜在问题,下面是几个例子,如何来分析和解释红点的出现原因?
如果在叶节点或者ViewGroup中,只有极少的子节点,这可能反映出一个问题,应用可能在设备上运行并不慢,但是你需要指导为什么这个节点是红色的,可以借助Systrace或者Traceview工具,获取更多额外的信息;
如果一个视图组里面有许多的子节点,并且测量阶段呈现为红色,则需要观察下子节点的绘制情况;
如果视图层级结构中的根视图,Messure阶段为红色,Layout阶段为红色,Draw阶段为黄色,这个是比较常见的,因为这个节点是所有其它视图的父类;
如果视图结构中的一个叶子节点,有20个视图是红色的Draw阶段,这是有问题的,需要检查代码里面的onDraw方法,不应该在那里调用。