hierarchy_hierarchy使用 idea - CSDN
精华内容
参与话题
  • Hierarchy Viewer使用详解

    万次阅读 2016-10-23 11:53:56
    Hierarchy Viewer工具提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。 2. 启动工具 启动方式有两种,一种是通过终端命令,输入hierarchyviewer,进行启动,第二种是通过打开...

    1. 功能

    Hierarchy Viewer工具提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。

    2. 启动工具

    启动方式有两种,一种是通过终端命令,输入hierarchyviewer,进行启动,第二种是通过打开Android Device Monitor,添加hierarchyviewer视图。官网提示第一种方式已经过期,建议用第二种方式启动,不过并不影响使用,功能是一样的,只不过是将hierarchyviewer整合到了Android Device Monitor里面了而已

    2.1第一种方式:

     

    2.2 第二种方式:


    3. 设备连接

    如果你是用的模拟器或者开发版手机的话则可以直接进行连接调试了,如果不是的话,官方提供了两种方式,进行连接真机调试:

    3.1 通过第三方库,安装和配置ViewServer,也是目前我在使用的方式,工具地址:https://github.com/romainguy/ViewServer,配置步骤比较简单,主要分为如下三步:

    3.1.1 添加依赖,外层build.gradle文件,添加工具远程仓库地址;内层build.gradle文件,添加依赖:

    allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
    }

    dependencies {
        ...................................
        compile 'com.github.romainguy:ViewServer:017c01cd512cac3ec054d9eee05fc48c5a9d2de'
    }

    3.1.2 在manifest文件申请网络权限

      <uses-permission android:name="android.permission.INTERNET"/>
    3.1.3 在应用中需要调试的Activity中添加如下代码,启动ViewServer, 这样就可以与hierarchy viewer通信了:

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Set content view, etc.
            ViewServer.get(this).addWindow(this);
        }
    
        public void onDestroy() {
            super.onDestroy();
            ViewServer.get(this).removeWindow(this);
        }
    
        public void onResume() {
            super.onResume();
            ViewServer.get(this).setFocusedWindow(this);
        }

    3. 2 第二种方式,通过设置环境变量,export ANDROID_HVPROTO=ddm,我用小米note, 5.0系统的手机,发现并无效果,简书上有童鞋用Nexus的手机时可以正常使用呢的,目前暂未找到原因。

    4. 分析页面布局性能

    4.1 选择一个节点,点击右上角的的按钮,就可以获取到布局绘制的时间,如图:


    这里我们主要关注下面的三个圆圈,从左到右依次,代表View的Measure, LayoutDraw的性能,不同颜色代表不同的性能等级:

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

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

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


    4.2 测量结果分析

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

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

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

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

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


    5. 布局常见问题与优化建议

    1)没有用的父布局时指没有背景绘制或者没有大小限制的父布局,这样的布局不会对UI效果产生任何影响。我们可以把没有用的父布局,通过<merge/>标签合并来减少UI的层次;

    2)使用线性布局LinearLayout排版导致UI层次变深,如果有这类问题,我们就使用相对布局RelativeLayout代替LinearLayout,减少UI的层次;


    3)不常用的UI被设置成GONE,比如异常的错误页面,如果有这类问题,我们需要用<ViewStub/>标签,代替GONE提高UI性能。


    资料参考:

    https://developer.android.com/studio/profile/hierarchy-viewer-results-walkthru.html

    http://2dxgujun.com/post/2014/09/27/Improving-Layout-Performance.html

    展开全文
  • Hierarchy

    2019-09-30 05:50:25
    Using Example 2.2, there are three different activities at the sender site and another three activities at the receive site. 使用2.2示例,在发送端网址有三次不同的活动,同样,在接收端也有三次活动。...

    Using Example 2.2, there are three different activities at the sender site and another three activities at the receive site.

    使用2.2示例,在发送端网址有三次不同的活动,同样,在接收端也有三次活动。

    The task of transporting the letter between the sender and the receiver is done by the carrier. 

    从发传者到接收者之间的信件传输任务,被载体完成。

    carrier /k'/ (carriers) 1. [N-count] carrier is a vehicle  that is used for carrying people, especially soldiers, or things.

    carrier是一辆被用来装人的车辆,特别是,士兵,或者货物。

    2.【n-count】 A carrier is a passenger airline . Carrier是一种乘客空机,

    转载于:https://www.cnblogs.com/666638zhangqiang/p/4778242.html

    展开全文
  • View Hierarchy

    2014-09-29 16:25:48
    view hierarchy是用来说明在window中的view之间的关系的。  可以把view hierarchy认为是一棵翻转的tree structure,而window就是这棵树的最上面的节点(根节点)。树的下面就是父子view之间的关系。从视觉上来看...

    ResourceFrom:http://blog.sina.com.cn/s/blog_6de189920101jn4y.html

    view hierarchy是用来说明在window中的view之间的关系的。 

    可以把view hierarchy认为是一棵翻转的tree structure,而window就是这棵树的最上面的节点(根节点)。树的下面就是父子view之间的关系。从视觉上来看,view hierarchy就是一个封闭的结构,就是一个view包含一个或多个view,而window包含所有的view。


    view hierarchy同时也是responder chain的重要部分,当我们需要渲染window中的内容的时候,应用程序的框架会用它来检测views的layer的层次,来决定需要渲染的部分,从而来避免做一些无用功,这点至关重要。


    接下来来看下在view hierarchy中view的三个属性的定义关系

    1.superview,view的父视图

    2.subviews,view的子视图

    3.window,包含view的window


    关于第三个window属性,在iOS和Mac中是有区别的。

    在iOS中window是一个view,在Mac中却不是。

    在Mac中window有一个单独contentView,所有的子视图是包含在contentView中的。

    在iOS中,window自己扮演了contentView的角色,所以子视图全部包含在window中。


    如下图


    在开发的时候,有时候会遇到

    1.ios attempt to present whose view is not in the window hierarchy

    2.Warning: Attempt to present on whose view is not in the window hierarchy!

    等等这样类似的提示,只要里面提示有 window hierarchy,都是view hierarchy的理解不到位导致的。

    上面的问题都是在一个controller的view还没加到window上的时候又取present另外一个controller,这就相当于在盖楼,2楼还没盖完,直接去盖3楼了,这样肯定是不行。

    遇到上面的问题 最直接的解决方法就是在controller的viewDidAppear里面去调用present。这样可以确保view hierarchy的层次结构不乱。

    展开全文
  • 布局优化工具Hierarchy Viewer

    千次阅读 2018-09-14 12:04:34
    版权声明:本文为博主原创或汇集文章,欢迎注明来源转载。http://blog.csdn.net/u012792686 https://blog.csdn.net/u012792686/article/details/72921379 ...
    版权声明:本文为博主原创或汇集文章,欢迎注明来源转载。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标签详解



    展开全文
  • 我用官方文档的例子来解释一下opnecv中contour hierarchy的概念: 比如说,在一张图片里会有好几个物品,它们可能位于不同的位置,也可能A物体嵌在B物体里,这时候我们可以把A物体称作父体(parent),B物体称为...
  • Hierarchy Viewer的基本使用

    千次阅读 2019-07-18 16:19:51
    Hierarchy Viewer提供了一个可视化界面,显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。 不过它只支持模拟器,真机中还无法使用,若要使用可通过开源项目View server,通过这个项目可以让真机...
  • 【Android工具】被忽略的UI检视利器:Hierarchy Viewer

    万次阅读 热门讨论 2010-04-25 17:39:00
    Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器,但是...
  • Python层次聚类sci.cluster.hierarchy.linkage函数详解

    万次阅读 多人点赞 2020-08-26 16:25:58
    1 函数原型:scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_ordering=False)函数功能:进行层次聚类/凝聚聚类。参数:y: 可以是1维压缩向量(距离向量),也可以是2维观测向量...
  • 助力快速掌握编辑器对 Unity Hierarchy 的扩展、及效果展示 为初学者节省宝贵的时间,避免采坑! Unity编辑器扩展、Unity右键菜单、Unity Editor中文教程,Unity Hierarchy 中文教程 为了开发的便利性,我们经常要...
  • 感谢点评与关注,欢迎转载与分享。 勤奋努力,持之以恒! ...在这写出自己也就当边学习边记录了,也希望能帮到大家。...层级视图 (Hierarchy) 层级视图 (Hierarchy) 包含当前场景中的每个游戏对象 (GameObject
  • hierarchyviewer

    热门讨论 2020-07-30 23:32:42
    android hierarchyviewer 代码
  • hierarchy

    2013-01-16 09:13:08
    The graphical user interface for an Android app is built using a hierarchy of View and ViewGroup objects. hierarchy 英['haɪərɑːkɪ]美['haɪərɑrki] n. 层级;等级制度
  • android自动化新人一个,目前研究PC端获取... adroid的目录tools下有2个自带的工具hierarchyviewer和uiautomatorviewer,打开后,如下所示:          分别来介绍它们怎么使用的:    UiAutoMatorViewer
  • OpenCV中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮廓,很方便。这些准备继续探讨一下 findContours方法中各参数的含义及用法,比如要求只检测最外层轮廓该怎么办?contours里边的数据...
  • 一 表结构 CREATE TABLE `sys_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `parent_id` bigint(255) NOT NULL ... `hierarchy` varchar(255) DEFAULT NULL COMMENT '层级关系', `n...
  • Idea Class Hierarchy Filter

    千次阅读 2016-08-17 13:07:01
    idea查看类继承的快捷键(CTRL+H)我相信大哥在网上随便一搜应该都能够搜索到答案。但是当我们使用CTRL+H查看类继承的时候。显示结果如下图所示,会展示Classpath下面所有jar的继承关系。当我们想针对的看代码的时候就...
  • 解决HierarchyViewer 无法使用问题

    千次阅读 2015-02-26 18:24:22
    /* * Copyright (C) 2011 The Android Open Source Project... * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You
  • SAP MM Product Hierarchy的配置

    千次阅读 2018-07-27 07:58:32
    笔者所在的D项目里,因业务需要启用Product Hierarchy, 业务提交了其设计的Product Hierarchy结构图给我,     让我帮忙在系统里设置好。   因SAP系统标准的产品层次是三层,每个层次的代码的长度分别是5,...
  • Filesystem Hierarchy Standard (FHS)
  • Unity编辑器拓展之三:拓展Unity的Hierarchy面板
1 2 3 4 5 ... 20
收藏数 99,015
精华内容 39,606
关键字:

hierarchy