New UI-Hierarchy Viewer工具解析app的界面布局

 ——转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!


小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的

力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文

更加的详尽,帮到更多的人,O(∩_∩)O谢谢!

小猪Android开发交流群:小猪Android开发交流群群号:421858269

新Android UI实例大全目录:http://blog.csdn.net/coder_pig/article/details/42145907


本节引言:

我们开发Android应用的时候,通常是使用xml文件来完成用户界面的布局,然后加载这个xml文件

生成对应的控件树,然后从根节点逐级绘制到屏幕上,而当我们对控件进行操作的时候,我们需要找到

控件树中对一个的控件,进行相关处理!另外控件树的层次深度会影响到控件的加载,绘制,以及查找,

所以在编写界面布局的时候,我们需要选择最佳的布局方式来尽可能的减少控件树的层次深度!

而在Android中也给我们提供了一个用于查看布局层次的查看器:Hierachy Viewer工具!

我们可以借助这个工具来查看app界面中的层次结构,有助于帮我们开发出优化UI布局的层次

结构!好了,本节就来对Hierachy Viewer的使用进行一个讲解吧!


1)工具在哪?

答:sdk -> tools -> hierachyviewer.bat批处理文件


2)工具使用介绍:


step 1:双击hierachyviewer.bat后,会来到以下界面:(连接好模拟器或手机)


我们可以从界面上看到:三个按钮和显示手机当前运行进程的窗口:

三个按钮依次是: 

①Refresh:当手机界面发生了改变时,需要点击Refresh来更新界面信息

②Load View Hierarchy:加载视图层次,就是加载我们的控件树

③Inspect Screenshot:查看当前的手机屏幕,就是截图




step 2:我们先来看看Inspect Screenshot这个玩意吧!

直接点击Inspect Screenshot会来到一个新的界面,会把当前的手机屏幕截取下来

我们可以在这个界面上看到一个简单的层次树,以及某个为的颜色值,以及相应的坐标等!


我们可以看到一个简单的布局的层次图了,可以满足我们的一些基本需要了

当然,我们肯定不满足只看到布局的层次树,我们想知道相关控件的属性值或者

控件的绘制时间等,那么就要使用更加高级的Load View Hierarchy



step 3:在第一个界面选择正在运行的app的,双击或者选中后点击上方的LoadView Hierarchy

就可以进入到这样一个页面:


ps:图中的右边的四个按钮貌似理解有误:

Invalidate Layout是将xml转换成gpu显示的对象

Request Layout是gpu将displaylist绘制出来

Dump DisplayList:给你看displaylist

Profile Node:剖析节点,点击后会显示控件的相关加载时间

对于上面几个笔者也不是很了解,先记下吧!



step 4:点击Profile Node后,随便选一个节点,进行剖析


从上面我们可以获取到一些相关的信息:

①有2个view,说明当前的控件还含有其他子控件

②Measure,Layout,Draw依次是:测量,不会,绘制的时间

③三个灯也代表上述三个阶段,这个控件所占用的时间百分比:

绿色:表示该控件在该阶段比起其他的50%的控件的速度要快

黄色:表示比起其他的50%的控件的速度要慢

红色:表示该控件在该阶段的处理速度是最慢的



最后一点:

对于Android的UI来说,invalidate和requestLayout是最重要的过程,Hierarchyviewer提供了帮助我们

Debug特定的UI执行invalidate和requestLayout过程的途径,方法很简单,只要选择希望执行这两种

操作的View点击按钮就可以。当然,我们需要在例如onMeasure()这样的方法中打上断点。

这个功能对于UI组件是自定义的非常有用,可以帮助单独观察相关界面显示逻辑是否正确。

New UI-Hierarchy Viewer工具解析app的界面布局相关推荐

  1. 猫眼APP注册界面布局

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  2. 布局优化工具Hierarchy Viewer

    版权声明:本文为博主原创或汇集文章,欢迎注明来源转载.http://blog.csdn.net/u012792686 https://blog.csdn.net/u012792686/article/ ...

  3. 10.1.5 布局优化利器之 Hierarchy Viewer

    无论是哪本讲解布局优化的参考书,它们都不得不提到Hierarchy Viewer.不过,通常情况下,Hierarchy( 英['haɪərɑːkɪ])Viewer无法在真机上进行使用,它只能在工厂的D ...

  4. APIClound-从0开始写脉脉(1)app的简单布局

    参考文章:http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=408 首先,先讲一下app的界面布局. 这里使用一个大 ...

  5. Android 卡顿优化 3 布局优化 工具 Hierarchy Viewer

    欲善其事, 先利其器. 分析布局, 就不得不用到Hierarchy Viewer了. 本文工具使用皆以GithubApp的详情界面RepoDetailActivity为例说明. 为了不影响阅读体验, ...

  6. Android 实用工具Hierarchy Viewer实战

    在Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率.其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地在开 ...

  7. 安卓布局工具---Hierarchy Viewer

    英文释义:Hierarchy--分层.单词意思即为分层视图. 功能:层次Viewer允许你调试和优化您的用户界面.还可以学习别人做好的UI界面,它提供了一个布局的视图层次结构(布局视图)的视觉表现和放 ...

  8. Appium基础篇5-抓元素工具之UI Automator Viewer

    在开始介绍元素定位之前,我们需要介绍一个工具,这个工具是Android SDK 自带的工具,叫UI Automator Viewer,可以在SDK\tools下找到这个工具并启动它,本篇,来介绍下这个 ...

  9. UI Automator Viewer Error while obtaining UI hierarchy XML file

    Error obtaining UI hierarchy Reason: Error while obtaining UI hierarchy XML file: com.android.ddmlib ...

最新文章

  1. 在ChemDraw中输入千分号的方法
  2. java代码下划线是啥意思,在这个Java代码中,下划线实际上做了什么?
  3. 移动水政执法通系统 安卓Android客户端
  4. 入门Python难不难?零基础到底要怎么学Python?
  5. 计算机保存的信息是模拟信号,信息技术考试样题(附解析).doc
  6. 人工智能已经迫在眉睫_创意计算机已经迫在眉睫
  7. php判断与网站访问时间,织梦CMS模板用php判断某个时间段显示和隐藏内容
  8. jQuery.treetable使用及异步加载
  9. 域用用户怎么允许共享_w7如何共享打印机 w7共享打印机步骤【详细介绍】
  10. python 协程 多线程_python进阶之多线程(简单介绍协程)
  11. 千年老二的 Python 值得学吗?
  12. 中国计量学院全国计算机二级报名,中国计量大学教务管理系统入口https://jwc.cjlu.edu.cn/...
  13. 查询SQLServer的启动时间
  14. Hdu 1301 Jungle Roads (最小生成树)
  15. 函数命名空间,函数的名字
  16. mapgis67安装输入计算机名称,mapgis67_dogserver67.exe_mapgis67安装教程
  17. 【PI调节】对PI调节的一些认识
  18. 中国心率监测器行业市场供需与战略研究报告
  19. 如何设置input只能输入数字
  20. 女程序员开发软件挂专家号,转手获利被刑拘

热门文章

  1. 福建农林大学计算机课程表,福建农林大学金山学课程表.doc
  2. 让建设银行晕倒的女人
  3. java jcr使用_java – 什么时候使用JCR(内容存储库)超过其他选项?
  4. 分享一篇写的非常好的文章《如何掌握企业级技术和项目经验》,非常值得一看!
  5. power supply框架
  6. 手机端设置缩放的解决方法和遇到的UC浏览器的坑
  7. Why Memory Barriers?中文翻译(上)
  8. 超灵敏磁传感解决方案助力汽车产业发展
  9. 2019年,成年人的奔溃来得那么突然,但他们仍选择负重前行
  10. 每天进步一点之灵魂拷问14之网络连接2