在Android的SDK工具包中,有不少十分有用的工具,能够帮助程序员开发和测试Android应用程序,大大提升其工做效率。其中的一款叫Hierachy Viewer的可视化调试工具,能够很方便地在开发者设计,调试和调整界面时,提升用户的开发效率。本文将以一个实际例子讲解如何使用该款工具运用在Android的开发过程当中。本文的读者对象为具有初步Android知识的用户。android
具体来讲主要功能有2个:程序员
1. 从可视化的角度直观地得到UI布局设计结构和各类属性的信息,帮助咱们优化布局设计;工具
2. 结合debug帮助观察特定的UI对象进行invalidate和requestLayout操做的过程。布局
1. 基本使用方法测试
(1)hierarchyviewer的使用很是简单,启动模拟器或者链接上真机后,启动hierarchyviewer.bat,会看到下面的界面,Devices里列出了能够观察的设备,Windows里列出的是当前选中的设备的能够用来显示View结构的Window:优化
选中某个想要观察的Window,好比上面列出的com.android.launcher/com.android.launcher.Launcher项,而后点击菜单栏的Load View Hierarchy,就进入Layout View,因为要解析相关Window,因此这个过程要几秒钟,左边列出的是当前窗口的树型布局结构图,右边列出的是当前选中的某个子View的属性信息和在窗口中的位置:
spa
须要注意的是:Layout View列出的View结构是从视图的根节点开始的,好比针对Launcher使用的layout,它的底层基础布局DragLayer其实是放在一个FrameLayout里的,该FrameLayout又是被PhoneWindow的DecorView管理的。debug
(2)点击界面左下角相似九宫格的按钮,就进入了Android称之为Pixel Perfect View的界面,这个界面里主要是从细节上观察UI效果:设计
左边是浏览视图,中间是全局的视图,右边是当前关注的地方的细节放大,是像素级别的,对于观察细节很是有用。调试
Refresh Rate用来控制View多久从模拟器或者真机上更新一次视图数据。
Zoom就是放大局部细节用的,细节显示在最右边的视图上。
Overlay比较有意思,主要用来测试在当前视图上加载新的图片后的效果,点击Load…选择图片后,能够控制在当前界面上显示的透明读,滑动0%~100%的控件便可。若是选择了Show in Loupe,右侧的放大视图也会将加载的图片的细节结合着透明度显示出来。不过目前这个Overlay作的比较简单,合成的图只能从界面的左下角为原点画出来,不能移动。
(3)在Layout View中,选中一个view的图示,点击工具栏的Display View,就能够看到这个view的实际显示效果,能够点选Show Extras,这个功能也比较实用,能够显示出该View中不一样元素显示的边界,帮助咱们检查是否正确。
2. Hierarchyviewer的invalidate和requestLayout功能
对于Android的UI来讲,invalidate和requestLayout是最重要的过程,Hierarchyviewer提供了帮助咱们Debug特定的UI执行invalidate和requestLayout过程的途径,方法很简单,只要选择但愿执行这两种操做的View点击按钮就能够。固然,咱们须要在例如onMeasure()这样的方法中打上断点。这个功能对于UI组件是自定义的很是有用,能够帮助单独观察相关界面显示逻辑是否正确。