10.1.5 布局优化利器之 Hierarchy Viewer
无论是哪本讲解布局优化的参考书,它们都不得不提到Hierarchy Viewer。不过,通常情况下,Hierarchy( 英['haɪərɑːkɪ])Viewer无法在真机上进行使用,它只能在工厂的Demo机和模拟器上使用,即非加密过的设备。Google的大神——Romain Guy提供了一个开源项目View Server,通过这个程序可以让普通的手机也能使用Hierarchy Viewer,有兴趣的朋友可以前去了解一下,传送门:点击前往
下面在模拟器中使用这个工具,如图进入ADM:
进入ADM界面之后,如下图点击右上角DDMS左侧按钮,弹出对话框,再点击Hierarchy Viewer,然后OK,即可打开Hierarchy Viewer界面:
Hierarchy Viewer界面:
可以双击Windows栏下对应进程进行调试,注意右上角两个按钮分别是“refresh”和“load”的功能键:
为了测试这个工具,我们写了一个非常冗余的布局文件,代码如下:
<?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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="hierarchyviewer"/></LinearLayout></LinearLayout></LinearLayout>
如此可以发现,只用三层LinearLayout嵌套,只装载了一个Button,很显然这些LinearLayout都是冗余的。下面利用工具进行分析:
通常情况下,重点关注!!! ID为content的FrameLayout分支,这也是setContentView()所设置的内容,如图:
在这里可以看见三层LinearLayout,而且这三层LinearLayout都没有任何分支。这说明了这些LinearLayout都是可以直接去掉的,这与我们的分析是一样的。
当点击其中一个View的时候,可以显示该View的绘制情况。不过,第一次点击的时候,各种显示时间都将是N/A,需要点击下图中的按钮重新进行计算,才能获取绘制信息:(!!!!!!!有时候会获取失败,这个时候只能关掉模拟器和ADM,重新打开试试了)
此时就可以知道每个View所绘制的时长,并且系统在下方也给出了三个不同颜色的小圆点,用来表示绘制的效率,绿、黄、红分别代表好、中、差三种不同的绘制效率。
通过Hierarchy Viewer工具,就可以很快地在视图树中找到冗余的布局,从而有目的地优化布局。同时,Hierarchy Viewer工具还可显示很多有用的信息,如下如:
总之,Hierarchy Viewer是进行布局优化的一个非常有用的工具,大家可以在官方API文档或者各大平台中了解更多详细的过程。
10.1.5 布局优化利器之 Hierarchy Viewer相关推荐
- mysql解释器优化_MySQL——SQL性能分析优化利器之Explain
系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...
- Android应用性能优化最佳实践.2.3 布局优化
2.3 布局优化 布局是否合理主要影响的是页面测量时间的多少,我们知道一个页面的显示测量和绘制过程都是通过递归来完成的,多叉树遍历的时间与树的高度h相关,其时间复杂度为O(h),如果层级太深,每增加一 ...
- 顺风车Android性能优化之View布局优化
一.问题背景 在开发过程中,往往会听到 "性能优化" 这个概念,这个概念很大,比如网络性能优化.耗电量优化等等,对 RD 而言,最容易做的或者是影响最大的,应该是 View 的性能 ...
- android 减少布局层级,Android 布局优化
布局优化主要从以下几点进行着手 减少布局层次 和 复杂度 优化绘制流程 按需加载布局 减少布局层次 和 复杂度 首先我们可以通过以下工具分析界面布局的结构 查看布局树工具:Hierarchy View ...
- Android 布局优化小结
主要介绍使用抽象布局标签(include, viewstub, merge).去除不必要的嵌套和View节点.减少不必要的infalte及其他Layout方面可调优点,顺带提及布局调优相关工具(hie ...
- Hierarchy Viewer
Hierarchy Viewer 帮你分析应用程序UI布局 Hierarchy Viewer在android的工具文件夹里: \android\tools\hierarchyviewer.bat 1. ...
- Android 卡顿优化 3 布局优化 工具 Hierarchy Viewer
欲善其事, 先利其器. 分析布局, 就不得不用到Hierarchy Viewer了. 本文工具使用皆以GithubApp的详情界面RepoDetailActivity为例说明. 为了不影响阅读体验, ...
- 布局优化工具Hierarchy Viewer
版权声明:本文为博主原创或汇集文章,欢迎注明来源转载.http://blog.csdn.net/u012792686 https://blog.csdn.net/u012792686/article/ ...
- python利器的使用-图文详解python开发利器之ulipad的使用实践
Ulipad是一个国人limodou编写的专业Python编辑器,它基于wxpython开发的GUI(图形化界面).下面这篇文章主要介绍了python开发利器之ulipad的使用实践,文中介绍的非常详 ...
最新文章
- asp.net中的联动菜单
- 快速理解和使用 ES7 await/async
- 【牛客 - 188D 】愤怒(01滚动数组优化dp,括号匹配方案个数,tricks)
- android 屏幕坐标色彩,Android自定义View实现颜色选取器
- 详解 Qt 串口通信程序全程图文 (5)
- RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
- java studentmanager_StudentManager.java
- 随想录(用python预测未来中国的GDP)
- 项目模板参数化(上)
- android+警告声音,android – 如何使用带有setAudioAttributes的警报音量播放铃声?
- java.lang.OutOfMemoryError: PermGen space---先测试
- 华为算法精英赛(题1:判断输入天数为当年的第几天)
- QT之Tcp数据发送测试工具
- Filenet:主打底层技术创新,检索分发挖矿开创全民挖矿时代!
- 个人笔记-Minecraft阿里云服务器搭建
- 可复制的领导力 重点总结读书笔记
- Java8中Map新方法:compute使用详解
- Day16:C++之STL应用篇(推箱子cxk限定)
- 电脑定时执行的软件 - 定时执行专家
- JavaScript学习(七)——对象与数组、内部对象(1)