如果你是一个布局的高手而且在布局的时候懂得如何减少UI的层次从而达到最精简的布局的话,那么你可以不用看这篇文章了。
一、布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.heraracky.MainActivity"
tools:ignore="MergeRootFrame" >
<LinearLayout
android:layout_width="300dp"
android:layout_height="300dp"
android:orientation="vertical"
android:background="@android:color/darker_gray">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="textView"/>
</LinearLayout>
</FrameLayout>
二、启动模拟器并运行程序
布局文件的显示效果如图
三、运行Hierachy Viewer
用命令行运行hierachyviewer.bat
或者是用monitor.bat
monitor只不过是把DDMS视图和Hierarchyviewer视图绑定到了一起,不过我觉得monitor不太好用。
走起!!!
因为模拟器比较慢所以我打算用Hierarchyviewer来看真机的图层可是失败了。
要说明的4个按钮
1、刷新按钮 如果你的图层布局变化了,那么程序从新运行下,在点击该刷新按钮,Hierarchyviewer就会从新获取模拟器上的图层
2、我们选中我们的项目后,点击2按钮就会获取布局信息,并展示图层结构
3、按钮3回到设备以及程序目录视窗
4、按钮4回到布局视图层次机构视窗
对于Android的UI来说,invalidate和requestLayout是最重要的过程,Hierarchyviewer提供了帮助我们Debug特定的UI执行invalidate和requestLayout过程的途径,方法很简单,只要选择希望执行这两种操作的View点击按钮就可以。当然,我们需要在例如onMeasure()这样的方法中打上断点。这个功能对于UI组件是自定义的非常有用,可以帮助单独观察相关界面显示逻辑是否正确。
小结
本文中,通过简单的例子,讲解了在Android中一款不错的工具Hierarchy viewer的使用。
使用这个工具,用户可以很方便地查看和调试应用中的UI界面,分析其性能,建议用户在开发阶段多使用这款工具对UI进行开发设计。