开篇废话
以前一直没有写过文章什么的东西,也没有这样的习惯,所以总感觉东西在自己心中但是却表达不出来,说出来也是杂乱无章的。看了[进击的欧阳](https://www.jianshu.com/u/955ba0d64a56)
的文章后发现他大致分为 开篇废话、 技术详情和干货总结三大模块,我决定效仿。另外,我是看着他的持续更新进行学习,我写的东西只是希望自己能有一个良好的表达,把自己学习到的东西用文字记录下来,文字上可能会有很多雷同的地方,但绝对没有要抄袭的意图。
技术详情
欧阳是从以下四部来讲述Hierarchy Viewer使用的:
第一步:开启Hierarchy View的工作界面
第二步:检测移动设备(虚拟机)的View Server是否开启
第三步:移动设备开启某个需要检测的界面,Hierarchy View 加载该界面视图
第四步:工具熟悉
第一步:开启Hierarchy View的工作界面
在Android Studio菜单栏依次点击:
Tools > Android > Android Device Monitor

点击之后会弹出一个界面:

如果没有,这需要

另外如果手动关闭过,则需要在Android Device Monitor的菜单栏依次点击把它显示出来
window > show view >

选择之后点 Ok
选择Hierarchy View之后,我们就能看到Hierarchy View工具的工作界面了
第二步:检测移动设备的View Server是否开启
检测服务是否开启
adb shell service call window 3
打开View Server命令:
adb shell service call window 1 i32 4939
关闭View Server命令:
adb shell service call window 2 i32 4939
使用adb指令在命令行输入 adb shell service call window 3
如果提示adb不是内部指令的话,记得进行配置环境变量,将platform-tools里面的adb.exe路径配置到Path中去(Windows环境,其他系统的类似)
执行后:

若返回值是:Result: Parcel(00000000 00000000 '........') 说明View Server处于关闭状态。
若返回值是:Result: Parcel(00000000 00000001 '........') 说明View Server处于开启状态。
我的两个手机都是打不开服务的,最后我用的模拟器
第三步:移动设备开启某个需要检测的界面,Hierarchy Viewer加载改界面视图

如果需要查看3个小点点,这需要先选中一个view 1
然后点击2
处的三色图标。
第四步:工具熟悉
Tree View(中心):显示视图层次结构。您可以使用鼠标拖动并放大,底部的缩放控件。每个节点表示它的View类名和ID名称。
Tree Overview(右上):为您的应用程序的完整视图层次结构提供鸟瞰图。移动灰色矩形以更改树视图中可见的视口。
Layout View(右下角):显示布局的线框视图。当前所选视图的轮廓为红色,其父视图为浅红色。
三个小圆点分别表示View绘制的Measuer 、Layout 、Down。如果显示红色,最好看看是否能够改善
Measure红点, 可能是布局中嵌套RelativeLayout, 或是嵌套LinearLayout都使用了weight属性
Layout红点, 可能是布局层级太深。
Draw红点, 可能是自定义View的绘制有问题, 复杂计算等。
干货总结
Hierarchy Viewer工具的使用能够帮助我们更好的返现视图、布局上的隐患和不合理,及时的去改善
网友评论