一、题外话
布局查看神器我们的第一印象应该是:Hierarchy Viewer . 很久没有用了,最近在总结性能优化工具的时候,发现sdk/tools下Hierarchyviewer.bat没有了,然后尝试打开 DDMS, Window -> Open Perspective 下面,也没有Hierarchy Viewer选项了。google了下,发现hierarchyviewer 已经被废弃了(Android SDK Tools Revision 25.3.0 (Feb 2017)),取而代之的是一个新的工具:Layout Inspector 。那么这篇文章就来了解下这个新工具。
Hierarchy Viewer官方使用文档
Layout Inspector官方使用文档
二、简介
Layout Inspector是Android studio自带的视图层次结构分析工具(Android Studio 2.2及其之后版本)。Android Studio中的Layout Inspector允许您在运行时从Android Studio IDE中检查应用程序的视图层次结构。当您的布局在运行时构建而不是完全在XML布局中定义时,这尤其有用。
自认为Layout Inspector的
优点:上手比Hierarchy Viewer简单,Hierarchy Viewer限制条件比较多,针对真机调试,需要root手机,且配置合适的系统属性。比较麻烦。HierachyViewer连接真机调试设置
缺点:界面虽不如HierarchyView直观。
三、使用:
按以下步骤操作:
- 在连接的设备或模拟器上运行应用。
- 点击 Tools > Android > Layout Inspector。
- 在出现的 Choose Process 对话框中,选择您想要检查的应用进程,然后点击 OK。
图 1. Choose Process 对话框
默认情况下,Choose Process 对话框仅会为 Android Studio 中当前打开的项目列出进程,并且该项目必须在设备上运行。 如果您想要检查设备上的其他应用,请点击 Show all processes。 如果您正在使用已取得 root 权限的设备或者没有安装 Google Play 商店的模拟器,那么您会看到所有正在运行的应用。 否则,您只能看到可以调试的运行中应用。
布局检查器会捕获快照,将它保存为 .li 文件并打开。 如图 2 中所示,布局检查器将显示以下内容:
- View Tree:视图在布局中的层次结构。
- Screenshot:带每个视图可视边界的设备屏幕截图。
- Properties Table:选定视图的布局属性。
图 2. 布局检查器
您可以在 View Tree 中点击视图以在屏幕截图中选择相同视图,反之亦然。 视图的所有布局属性都将显示在 Properties Table 中。
如果您的布局包括重叠视图,则默认情况下,只有前面的视图可以在屏幕截图中点击。 要让后面的视图可以在屏幕截图中点击,请执行以下操作: 在 View Tree 中右键点击前面的视图,然后取消选中 Show in preview。 此操作不会让视图内容消失;仅会让屏幕截图中的可点击边界消失,以便您可以点击在它后面的视图。
如果设备上的布局发生变化,布局检查器不会更新。 您必须再次点击 Tools > Android > Layout Inspector,创建一个新的快照。每一个快照都将保存到 project-name/captures/ 内一个单独的 .li 文件中。
图 3. Project 窗口中的布局检查器快照(.li 文件)
笔者认为,Layout Inspector主要用分析布局的层级结构,减少不必要的层级,避免overdraw, 达到渲染优化的效果。Layout Inspector虽然界面不如HierarchyView直观,但是提供的信息也足够详细,分析布局层级绝对够用了。