版权声明:本文为博主原创或汇集文章,欢迎注明来源转载。http://blog.csdn.net/u012792686 https://blog.csdn.net/u012792686/article/details/72921379
                                        <div class="markdown_views prism-atom-one-dark"><!-- flowchart 箭头图标 勿删 --><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><h1 id="导读"><a name="t0"></a>导读:</h1>

不合理的布局会使我们的应用程序UI性能变慢,Android 自带的 Hierarchy Viewer 工具能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计.让我们更好地检视和设计用户界面(UI),绝对是UI检视的利器.

平常没事想学习别人APP的布局设计,也可以通过这个工具查看

官方Hierarchy Viewer使用文档

工具打开方式:

  1. 本地安装SDK目录->sdk->tools->hierarchyviewer.bat(版本低,可能有未知bug)或点击同级目录的monitor.bat
  2. Android Studio : 工具栏->Tools->Android->Android Device Monitor(官方推荐)
  3. 在命令行输入 hierarchyviewer(可用,但是启动的是版本低的)

工具使用(第二种打开方式为例):

一、设备连接(模拟器设备版本需要设置为 Android 4.1,真机需要手机root权限)

成功后左侧Windows小手机会看到设备信息

二、点击Window->Open Perspective->Hierarchy View

现在应该会看到如图界面,否则点击工具栏Window -> Reset Perspective 重启默认布局

  • Tree View(中心):显示视图层次结构的树视图。 您可以使用鼠标拖动并放大树,底部的缩放控件。 每个节点表示它是View类名和ID名称。双击节点或者点击右上角小地球可以查看实际布局显示的内容

  • Tree Overview(右上):为您的应用程序的完整视图层次结构提供鸟瞰图。 移动灰色矩形以更改树视图中可见的视口。

  • Layout View(右下角):显示布局的线框视图。 当前所选视图的轮廓为红色,其父视图为浅红色。单击此处的视图也会在树视图中选择它,反之亦然。

  • hierarchy view 视图层次结构是布局的快照,因此不会自动更新。 要更新层次结构视图,点击右上角蓝色金字塔Reload the view hierarchy

  • 要想保存Tree View,点击右上角蓝色金字塔左边小文档,左边是PNG格式,右边是PS的PSD格式

三、双击左侧Window小手机设备信息对应的我们的app的包名,就能看见TreeView显示我们项目的View层级视图(切换到其他app同理操作)

四、随便选择一个节点,点击右上的Profile Mode按钮,可以获取到布局绘制的时间,如图

绿色:表示该View的此项性能比该View Tree中超过50%的View都要快;例如,一个绿点的测量时间意味着这个视图的测量时间快于树中的视图对象的50%

黄: 表示该View的此项性能比该View Tree中超过50%的View都要慢;例如,一个黄点布局意味着这种观点有较慢的布局时间超过50%的树视图对象。

红: 表示该View的此项性能是View Tree中最慢的;例如,一个红点的绘制时间意味着花费时间最多的这一观点在树上画所有的视图对象。

布局性能分析

红色节点是代表应用性能慢的一个潜在问题,下面是几个例子,如何来分析和解释红点的出现原因?

  1. 如果在叶节点或者ViewGroup中,只有极少的子节点,这可能反映出一个问题,应用可能在设备上运行并不慢,但是你需要指导为什么这个节点是红色的,可以借助Systrace或者Traceview工具,获取更多额外的信息;

  2. 如果一个视图组里面有许多的子节点,并且测量阶段呈现为红色,则需要观察下子节点的绘制情况;

  3. 如果视图层级结构中的根视图,Messure阶段为红色,Layout阶段为红色,Draw阶段为黄色,这个是比较常见的,因为这个节点是所有其它视图的父类;

  4. 如果视图结构中的一个叶子节点,有20个视图是红色的Draw阶段,这是有问题的,需要检查代码里面的onDraw方法,不应该在那里调用。

总结:

本篇文章到此结束,欢迎关注,后续有补充的会即使更新,有问题也欢迎评论,共同成长

布局优化神器 include 、merge、ViewStub标签详解

布局优化工具Hierarchy Viewer相关推荐

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

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

  2. Android 实用工具Hierarchy Viewer实战

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

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

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

  4. android布局优化 工具,详解Android布局优化

    怎样才能写出优秀的Android App,是每一个程序员追求的目标.那么怎么才能写出一个优秀的App呢?相信很多初学者也会有这种迷茫.一句话来回答这个问题:细节很重要.今天我们就从最基础的XML布局来 ...

  5. android html 布局设计工具,教你使用Android SDK布局优化工具layoutopt

    创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化 ...

  6. 教你使用Android SDK布局优化工具layoutopt

    创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化 ...

  7. Android开发常用工具,编译调试工具,性能优化工具,工具集

    分析具体耗时的Trace view;布局复杂度工具Hierarchy View;应用启动时间;Memory.CPU.Network分析;静态代码检查工具Lint;程序稳定性monkey.adb调试桥. ...

  8. Android 系统性能优化(24)--布局优化

    前言 我们知道一个界面的测量和绘制是通过递归来完成的,减少布局的层数就会减少测量和绘制的时间,从而性能就会得到提升.当然这只是布局优化的一方面,那么如何来进行布局的分析和优化呢?本篇文章会给你一个满意 ...

  9. 顺风车Android性能优化之View布局优化

    一.问题背景 在开发过程中,往往会听到 "性能优化" 这个概念,这个概念很大,比如网络性能优化.耗电量优化等等,对 RD 而言,最容易做的或者是影响最大的,应该是 View 的性能 ...

最新文章

  1. ionic打包/编译遇到的问题
  2. 蚂蚁森林合种计划(2020.10.31,7天有效,每周更新)
  3. SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性
  4. 编写yara规则 检测恶意软件
  5. 自动化测试中,测试数据如何管理?
  6. android tcp socket框架_最流行的 Web 框架 Gin 源码阅读
  7. 软件需求分层处理的多种常见方式
  8. leetcode 506. 相对名次(Java版)
  9. The method getTextContent() is undefined for the type Node 错误解决办法
  10. mfc远程连接mysql数据库连接_MFC连接mysql数据库(十分钟搞定)
  11. 2012北理机试题——已知中序和后序遍历序列,求先序
  12. 关于微信拼车小程序开发的需求分析(需求获取)
  13. python blp模型 估计_随机系数Logit模型及Stata实现
  14. 米思齐(Mixly)初体验—触摸式开关
  15. 路由宽带运营商服务器未响应,宽带运营商服务器未响应解决方法
  16. 交互设计的本质是什么?交互设计哪些意义?
  17. 《生物信息学:导论与方法》--本体论、分子通路鉴定--听课笔记(十八)
  18. 网卡的TSO卸载功能
  19. cocos creator 模拟重力爆炸效果
  20. 点餐小程序系统/基于微信小程序的点餐系统/点餐平台网站

热门文章

  1. JAVA导出shape文件zip
  2. 初学FS4412——简介和点灯
  3. reboot重启linux能清理内存,Linux关机和重启shutdown、reboot命令
  4. qlabel 边加载边更新_拉风!在惠东路上看到一辆边三轮,车牌还是quot;京A好几个8quot;...
  5. 苹果app取消自动续费_自动续费难取消、广告还得看,你为App会员套路充过多少值...
  6. 办公套件新选择 WPS Office for Mac vs. 微软 Office 2019
  7. fis 产出修改的html,FIS3项目构建
  8. AI时代:聊聊大数据中的MapReduce
  9. EAS添加系统参数F7的子项
  10. (C语言)八大排序之:希尔排序