10.1.5 布局优化利器之 Hierarchy Viewer

简介: 无论是哪本讲解布局优化的参考书,它们都不得不提到Hierarchy Viewer。不过,通常情况下,Hierarchy( 英['haɪərɑːkɪ])Viewer无法在真机上进行使用,它只能在工厂的Demo机和模拟器上使用,即非加密过的设备。

无论是哪本讲解布局优化的参考书,它们都不得不提到Hierarchy Viewer。不过,通常情况下,Hierarchy( 英['haɪərɑːkɪ])Viewer无法在真机上进行使用,它只能在工厂的Demo机和模拟器上使用,即非加密过的设备。Google的大神——Romain Guy提供了一个开源项目View Server,通过这个程序可以让普通的手机也能使用Hierarchy Viewer,有兴趣的朋友可以前去了解一下,传送门:点击前往

下面在模拟器中使用这个工具,如图进入ADM:

img_40d94031c0e5e3ebaace44555d20a584.png

进入ADM界面之后,如下图点击右上角DDMS左侧按钮,弹出对话框,再点击Hierarchy Viewer,然后OK,即可打开Hierarchy Viewer界面:
img_72ec51998882fa2abad410c415a1a378.png

Hierarchy Viewer界面:
img_7669245a82642b25ed908a40755ff61f.png

可以双击Windows栏下对应进程进行调试,注意右上角两个按钮分别是“refresh”和“load”的功能键:
img_fce31b5a5dd2df3b6ff615a5ffe803e9.png

为了测试这个工具,我们写了一个非常冗余的布局文件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.performanceoptimizationtest.HierarchyViewerTest">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="hierarchyviewer"/>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

如此可以发现,只用三层LinearLayout嵌套,只装载了一个Button,很显然这些LinearLayout都是冗余的。下面利用工具进行分析:

img_618c1292092dc16286d31cac4ab4a842.png

通常情况下,重点关注!!! ID为content的FrameLayout分支,这也是setContentView()所设置的内容,如图:
img_ebc0e7b8267db0b709be586c6d4b261a.png

在这里可以看见三层LinearLayout,而且这三层LinearLayout都没有任何分支。这说明了这些LinearLayout都是可以直接去掉的,这与我们的分析是一样的。
当点击其中一个View的时候,可以显示该View的绘制情况。不过,第一次点击的时候,各种显示时间都将是N/A,需要点击下图中的按钮重新进行计算,才能获取绘制信息:(!!!!!!!有时候会获取失败,这个时候只能关掉模拟器和ADM,重新打开试试了)
img_0b75537803f14578f45c48a30d0faf44.png

此时就可以知道每个View所绘制的时长,并且系统在下方也给出了三个不同颜色的小圆点,用来表示绘制的效率,绿、黄、红分别代表好、中、差三种不同的绘制效率。
img_e985c44a53dfb70fe96e25f092ade67b.png

img_1b73ccc1a70c0db5193248ec09bff0dd.png

通过Hierarchy Viewer工具,就可以很快地在视图树中找到冗余的布局,从而有目的地优化布局。同时,Hierarchy Viewer工具还可显示很多有用的信息,如下如:

img_aeb65dd0a8c2ed729de83170d72dbead.png

总之,Hierarchy Viewer是进行布局优化的一个非常有用的工具,大家可以在官方API文档或者各大平台中了解更多详细的过程。

目录
相关文章
|
28天前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:使用 Core Image 和 Metal 进行高效滤镜应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能是现代应用程序开发中的一个关键需求。苹果的iOS平台提供了Core Image和Metal两大技术,它们为开发者提供了强大的工具来实现复杂的图像处理任务。本文将探讨如何使用Core Image进行基础图像处理,并结合Metal的性能优势,开发出一个自定义的实时图像滤镜。我们将通过创建一个能够动态调整参数并且具有实时反馈效果的滤镜来演示这一过程。
|
2月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
68 1
|
19天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第四篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第四篇】
|
19天前
|
Serverless 图形学 计算机视觉
【#Unity Shader#Amplify Shader Editor(ASE)_第六篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第六篇】
|
存储 人工智能 图形学
Unity基础到入门-导航系统(Navigation)
Unity基础到入门-导航系统(Navigation)
Unity基础到入门-导航系统(Navigation)
|
异构计算
好工具推荐系列:OpenGL Extensions Viewer
好工具推荐系列:OpenGL Extensions Viewer
177 0
|
Android开发
Android 利用Hierarchy Viewer工具学习别人的UI设计
  在Android 工具栏里面,地址:D:\Program Files\android-sdk-windows\tools  目录下打开此工具:   此工具名为:层级观察器   本篇文章将教大家如何利用层级观察器查看和优化自己的UI层次关系或者看别人应用程序UI的布局结构,双击该处理文件,显示如下 图:   左边为设备列表名称,如果你开启多个设备将会一一列出你当前运行的设备,包括真机。
902 0
|
监控 C# Windows
WPF性能调试系列 – Ants Performance Profiler
原文:WPF性能调试系列 – Ants Performance Profiler WPF性能调试系列文章:     WPF页面渲染优化:Application Timeline     WPF页面业务加载优化:Ants Performance Profiler       WPF内存优化:Ants Memory Profiler   Ants Performance Profiler     Ant Performance Profiler是RedGate旗下强大的性能调优产品, 可以用于分析.NET Winform、webform以及Windows服务。
1357 0
|
图形学
Unity导航系统Navigation使用教程
Unity开发VR之Vuforia 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
1511 0
|
图形学
Unity 3D-Navigation网格导航系统使用教程
Unity自带导航系统 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享...
1315 0