Google的零容忍
hierarchy viewer:布局层级查看工具,已废弃……
Pixel Perfect:布局性能查看工具,已废弃……
工具都废弃了……还有什么工具可以查看布局层次结构呢?(View树结构)
工具主角:Layout Inspector
1、工具在哪?
Layout Inspector集成在Android Studio中,请安装Android Studio
2、支持查看布局性能不?
Layout Inspector目前不支持查看布局性能!(对应版本:Android Studio 4.0.1)
3、如何应对经常废弃的工具?(重要的事情:说三遍)
Google提供的工具随时可能因为不爽就废弃……今天的你刚学会Layout Inspector,可能明天它就废弃了…你觉得苦不苦B呢?所以学习工具的同时,必须同时学习工具相关的理论!!
Google提供的工具随时可能因为不爽就废弃……今天的你刚学会Layout Inspector,可能明天它就废弃了…你觉得苦不苦B呢?所以学习工具的同时,必须同时学习工具相关的理论!!
Google提供的工具随时可能因为不爽就废弃……今天的你刚学会Layout Inspector,可能明天它就废弃了…你觉得苦不苦B呢?所以学习工具的同时,必须同时学习工具相关的理论!!
如何开启Layout Inspector
1、打开Android Studio
2、已连接真机或模拟器
3、运行你的Debug App
(注意事项:App必须为Debug Version,App进程必须处于存活状态)
4、点击Android Studio顶部菜单栏的 Tools > Layout Inspector
5、Layout Inspector窗口中选择设备与已经运行的Debug进程
6、成功启动Layout Inspector后的窗口截图
窗口组成介绍
Layout Inspector由3个子窗口组成,从左到右,依次介绍一下……
Component Tree窗口(最左侧)
位于最左侧的就是Component Tree窗口,此窗口提供以下功能
1、Component Tree窗口可用于查看整个View树
2、Component Tree窗口可用于切换View树,当同时打开多个Activity时,可以指定查看哪一个View树
3、Component Tree窗口可用于选中View树中的某一个控件,被选中的控件属性信息会在Attrsibutes窗口中展示
通用窗口(居中)
位于中间的为通用窗口(屏幕截图窗口,没找到合适的名字),此窗口提供这些功能
1、选择设备与进程
2、设置设备实时截图的选项
3、提供Overlay功能,可覆盖一张透明的设计图与实际的截图进行对比
4、更新当前屏幕截图功能
5、勾选按钮后,手机上的画面将随着实时更新,注意:此时的手机画面流畅度会下降
6、屏幕截图操作,放大、缩小、拖拽,注意其中一个正方形的功能,在API 29的设备上才可使用
Attributes窗口(最右侧)
位于最右侧Attributes窗口,提供以下功能
1、展示控件的属性信息
2、控件所在View树的布局信息
3、控件相对屏幕的属性信息
4、支持搜索某个属性
Layout Inspector使用场景
使用场景1:查看动态添加的View
控件是在代码中动态添加的,你很关心动态生成的控件在View树中的位置结构是否合理?那就使用Layout Inspector吧!
使用场景2:插桩测试定位控件
编写Android App的插桩测试项目,需要查看控件的Id属性或者其它可以用于定位控件的属性
使用场景3:原型对比
使用当前布局的结构图与设计师的原型图进行对比,检查实际开发图与设计图的差别
使用场景4:学习View树结构
需要学习Android的控件原理,通过查看当前Window实际的View树结构是什么样的?看看顶级View是否为DecorView
使用场景5:查看竞品布局
查看竞争对手的App的界面是如何实现的(必须Root设备或模拟器),因为竞品与你的需求是相似的,通过参考竞品的App的View树结构,将非常有利于提高自己的开发速度,斗胆猜测这是Google故意提供的功能,开发者们越快开发出App,越利于Android生态的建设!(注意:必须Root手机或者模拟器才可查看Release版本的App,日常情况下只能查看Debug版本的App)
使用场景6:复杂布局Debug
明明写好的界面,为什么那里有个空白的bug?当某个页面很复杂,又出现莫名其妙的bug时,别着急,先用Layout Inspector工具看下View树结构,再来修改bug也不迟……
如何选中一个View
属性表窗口中展示选中的控件的所有属性
1、Component Tree窗口下,点击任意一个View,即选中一个View
2、屏幕截图窗口下,点击任意一个View,即可选中一个View
3、重叠的View如何选中
如果布局中包含重叠的View,只能在View树窗口中选择对应的控件
隔离View功能
1、在View树窗口右键选中只展示子View
2、在屏幕截图窗口,对着选中的View,选中只展示子树
3、另外在View树窗口与屏幕截图窗口也可以右键选中只展示父View
控制布局边界显示选项
勾选Show Borders选项,屏幕截图中的View边界会
1、隐藏
或者
2、显示
控制控件类型信息显示选项
勾选Show View Label后,可以控制在屏幕截图中选中View后展示的View的类型信息
放大与缩小功能
- 要放大屏幕截图,请点击 Zoom In 图标
- 要缩小屏幕截图,请点击 Zoom Out 图标
实际布局与设计图比较功能
1、要将应用布局与参考图像进行比较,可以在布局检查器中加载一个位图图像作为叠加层
- 请点击布局检查器顶部的 Load Overlay 图标,然后选中一张设计图,叠加层将会缩放以适合当前布局
- 要调整叠加层的透明度,请使用 Alpha 滑块
- 要移除叠加层,请点击 Clear Overlay 图标
Android Studio4.0.1版本截图
当前页面改变,手动刷新并获取新的屏幕截图
Android Studio 4.0.1版本的Layout Inspector(再次介绍)
在Android Studio 4.0.1版本中,Layout Inspector工具进行了重大更新(坑爹),工具窗口相对旧版本发生变化,很多功能的操作也改变了,还有一部分功能直接废弃了……
新的窗口布局
从左侧到右侧共计3个子窗口
第一个窗口:Component Tree窗口
第二个窗口:屏幕截图窗口
第三个窗口:控件信息窗口
功能区
1、选择debug应用的位置
选择已运行的debug应用,集成在窗口中(旧版本是个对话框)
2、多个Activity的View树呈现在列表中(旧版是个选中Activity的对话框)
最下方的View树是当前屏幕的Activity
3、查看屏幕控件的全局选项固定为两个
4、View隔离功能,集成在屏幕窗口中、以及View树窗口中,使用右键弹出选项
5、刷新当前屏幕的View树功能按钮
6、控件信息窗口展示的信息更全面
7、最亮点的功能按钮,我没用……电脑配置太差
最亮点的功能需要配置-Layout Inspector Image Server
1、首先打开SDK Manager安装Layout Inspector的image server
2、必须是API 29-30之间的设备
3、我们来看下这个牛X的功能,未完,待续!
总结
1、Layout Inspector是用于在Android平台查看View树层级的好工具……
2、缺点:Layout Inspector无法查看布局性能
3、缺点:日常只能查看正在运行的debug App,想看竞品release App的布局,官方建议使用root手机或者模拟器设备
4、缺点:Layout Inspector工具更新太快了………………我就艹了…………
参考文献
https://developer.android.com/studio/debug/layout-inspector 使用布局检查器(Layout Inspector)调试布局