如果你是一個佈局的高手而且在佈局的時候懂得如何減少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進行開發設計。