
一、為啥要用HierarchyViewer?
不合理的布局會(huì)使我們的應(yīng)用程序UI性能變慢,但是許多時(shí)候,布局都需要一點(diǎn)一點(diǎn)的調(diào)試,是件非常費(fèi)時(shí)費(fèi)力的工作。
古語有,軍欲善其事,必先利其器,這事兒其實(shí)不用我們親自操刀,HierarchyViewer 早就為我們做好了一切,它能夠以可視化的方式直觀地獲得UI布局設(shè)計(jì)結(jié)構(gòu)和各種屬性的信息,幫助我們優(yōu)化布局設(shè)計(jì)。
HierarchyViewer是我們優(yōu)化程序的工具之一,它是Android自帶的非常有用的工具,可以幫助我們更好地檢視和設(shè)計(jì)用戶界面UI,絕對是UI檢視的利器。
二、如何使用HierarchyViewer?
-
1.打開方法
同上篇打開DDMS的方法一樣:Tools -> Android -> Android Device Monitor,只不過打開后要找到DDMS選項(xiàng)卡右側(cè)的HierarchyViewe按鈕并點(diǎn)選打開,視圖如下:

-
2.雙擊左側(cè)列出的應(yīng)用程序
如上圖中的啟動(dòng)wps應(yīng)用截取的視圖(真機(jī)要經(jīng)過Root過后才能看見視圖),加載完畢后會(huì)在中間顯示當(dāng)前界面層次結(jié)構(gòu),右側(cè)是整體的縮略圖。
-
3.觀察層次結(jié)構(gòu)圖
這個(gè)圖有點(diǎn)大,可以拖動(dòng),滾輪可以調(diào)整視圖大小。View Hierarchy窗口顯示了Activity的所有View對象,選中某個(gè)View還可以查看View的具體信息,最好選擇工具中的Show Extras選項(xiàng),左側(cè)的ViewProperties可以查看視圖的各種屬性信息。
-
4.觀察單個(gè)view
選擇單個(gè)view并放大后會(huì)出現(xiàn)如下圖所示圖形。這里會(huì)看到Measure、Layout、Draw的耗時(shí)。

View Hierarcy 同時(shí)能幫助你識(shí)別渲染性能比較低的部分。View節(jié)點(diǎn)中帶有紅色或黃色的點(diǎn)代表速度較慢的View對象。如單步運(yùn)行應(yīng)用程序那樣,你可以這樣來判斷某個(gè)View 速度一直很慢,還是只在某個(gè)特定環(huán)境下速度才慢。
請注意,低性能并不表示一定有問題,特別像是ViewGroup對象,View的子節(jié)點(diǎn)越多,結(jié)構(gòu)越復(fù)雜,性能越差。
View Hierarchy 窗口還可以幫助你找到性能問題。只要看每個(gè)View節(jié)點(diǎn)的性能指標(biāo)(顏色點(diǎn))就可以,你可以看到測量(布局或繪制)最慢的View對象是哪個(gè),這樣你就能快速確定,要優(yōu)先察看哪個(gè)問題。
感謝優(yōu)秀的你跋山涉水看到了這里,不如關(guān)注下讓我們永遠(yuǎn)在一起!