Android性能调优之工具Hierarchy Viewer的使用

开篇废话

以前一直没有写过文章什么的东西,也没有这样的习惯,所以总感觉东西在自己心中但是却表达不出来,说出来也是杂乱无章的。看了[进击的欧阳](https://www.jianshu.com/u/955ba0d64a56)的文章后发现他大致分为 开篇废话、 技术详情和干货总结三大模块,我决定效仿。另外,我是看着他的持续更新进行学习,我写的东西只是希望自己能有一个良好的表达,把自己学习到的东西用文字记录下来,文字上可能会有很多雷同的地方,但绝对没有要抄袭的意图。

技术详情

欧阳是从以下四部来讲述Hierarchy Viewer使用的:

第一步:开启Hierarchy View的工作界面
第二步:检测移动设备(虚拟机)的View Server是否开启
第三步:移动设备开启某个需要检测的界面,Hierarchy View 加载该界面视图
第四步:工具熟悉

第一步:开启Hierarchy View的工作界面

在Android Studio菜单栏依次点击:

Tools > Android > Android Device Monitor
Android性能调优之工具Hierarchy Viewer的使用_第1张图片
AndroidDeviceMonitor打开.png

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


Android性能调优之工具Hierarchy Viewer的使用_第2张图片
Andorid Device Monitor界面.png

如果没有,这需要


Android性能调优之工具Hierarchy Viewer的使用_第3张图片
打开Hierarchy View.png

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

window > show view >
Android性能调优之工具Hierarchy Viewer的使用_第4张图片
show view.png

选择之后点 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环境,其他系统的类似)

执行后:


Android性能调优之工具Hierarchy Viewer的使用_第5张图片
View Server开启.png
若返回值是:Result: Parcel(00000000 00000000 '........') 说明View Server处于关闭状态。
若返回值是:Result: Parcel(00000000 00000001 '........') 说明View Server处于开启状态。

我的两个手机都是打不开服务的,最后我用的模拟器

第三步:移动设备开启某个需要检测的界面,Hierarchy Viewer加载改界面视图

Android性能调优之工具Hierarchy Viewer的使用_第6张图片
界面.png

如果需要查看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工具的使用能够帮助我们更好的返现视图、布局上的隐患和不合理,及时的去改善

你可能感兴趣的:(Android性能调优之工具Hierarchy Viewer的使用)