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

    万次阅读 2016-10-23 11:52:08
    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-25 13:37:13
    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的层次结构不乱。

    展开全文
  • hierarchyviewer

    热门讨论 2012-03-01 16:41:24
    android hierarchyviewer 代码
  • Hierarchy Viewer的基本使用

    千次阅读 2018-07-13 16:45:00
    Hierarchy Viewer提供了一个可视化界面,显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。 不过它只支持模拟器,真机中还无法使用,若要使用可通过开源项目View server,通过这个项目可以让真机...

    1. 介绍

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

        不过它只支持模拟器,真机中还无法使用,若要使用可通过开源项目View server,通过这个项目可以让真机使用Hierarchy Viewer,ViewServer博客介绍

    2. 启动工具

        通过打开Android Device Monitor,添加hierarchyviewer视图,图解如下

    2.1 android studio-》tools -》android -》Android Device Monitor

    备注:

    android studio 3.2及以上版本,此功能有较大改变,下面的文章也仅作参考

    2.2 基本界面如下

    2.3 之后点击右上角视图切换,选中 Hierarchy Viewer

     

    2.4 成功开启后界面如下

    其实这个界面中我自己添加的布局只有7个按钮(我通过相对布局添加的),如下图,

    其他的几个是系统的,比如topbar,navigationbar等,是系统的,不需要关心

    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);
        }
    

    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://blog.csdn.net/swordgirl2011/article/details/52887925

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

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

     

     

     

    展开全文
  • 如何使用HierarchyViewer分析优化布局

    千次阅读 2015-12-23 11:46:40
    为什么使用HierarchyViewer  不合理的布局会使我们的应用程序UI性能变慢,HierarchyViewer能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计。HierarchyViewer是我们优化程序...
  • Android UI 优化——使用HierarchyViewer工具

    万次阅读 多人点赞 2013-12-25 23:09:59
    我们这一篇文章会提到为什么使用HierarchyViewer,怎么使用HierarchyViewer,后者内容会多一下。
  • 助力快速掌握编辑器对 Unity Hierarchy 的扩展、及效果展示 为初学者节省宝贵的时间,避免采坑! Unity编辑器扩展、Unity右键菜单、Unity Editor中文教程,Unity Hierarchy 中文教程 为了开发的便利性,我们经常要...
  • Python层次聚类sci.cluster.hierarchy.linkage函数详解

    万次阅读 多人点赞 2018-02-25 22:00:33
    1 函数原型:scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_ordering=False)函数功能:进行层次聚类/凝聚聚类。参数:y: 可以是1维压缩向量(距离向量),也可以是2维观测向量...
  • OpenCV中findcontours函数hierarchy轮廓层级详解

    万次阅读 多人点赞 2018-07-31 08:38:12
    最近在查阅OpenCV轮廓处理函数方面时,我发现有部分文章对findcontours函数中轮廓层级提取的描述有错误,特写一篇有关轮廓提取方面的文章(仅仅介绍容易出错的hierarchy层级轮廓)。 函数原型为:findContours...
  • 感谢点评与关注,欢迎转载与分享。 勤奋努力,持之以恒! ...在这写出自己也就当边学习边记录了,也希望能帮到大家。...层级视图 (Hierarchy) 层级视图 (Hierarchy) 包含当前场景中的每个游戏对象 (GameObject
  • hierarchy

    2013-01-15 11:08:10
    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-16 22:35:45
    idea查看类继承的快捷键(CTRL+H)我相信大哥在网上随便一搜应该都能够搜索到答案。但是当我们使用CTRL+H查看类继承的时候。显示结果如下图所示,会展示Classpath下面所有jar的继承关系。当我们想针对的看代码的时候就...
  • 解决HierarchyViewer 无法使用问题

    千次阅读 2015-02-26 18:23:58
    /* * 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
  • 布局优化工具Hierarchy Viewer

    千次阅读 2018-09-14 12:04:34
    版权声明:本文为博主原创或汇集文章,欢迎注明来源转载。http://blog.csdn.net/u012792686 https://blog.csdn.net/u012792686/article/details/72921379 ...
  • Filesystem Hierarchy Standard (FHS)
  • SAP MM Product Hierarchy的配置

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

hierarchy