UI檢測(cè)(Hierarchy Viewer和Layout Inspector)

工具推薦
UI檢測(cè)的工具,Hierarchy Viewer和Layout Inspector。

Hierarchy Viewer官方地址

Layout Inspector官方地址

雖然Hierarchy Viewer已經(jīng)廢棄了,但感覺(jué)還是有必要介紹一下的。

Hierarchy Viewer
工具打開方式
AS版本:3.3.2 打開方式:

本地安裝SDK目錄->sdk->tools->monitor.bat
老版的AS打開方式:

本地安裝SDK目錄->sdk->tools->hierarchyviewer.bat
Android Studio : 工具欄->Tools->Android->Android Device Monitor
在命令行輸入 hierarchyviewer
工具的使用
設(shè)備連接(真機(jī)需要手機(jī)root權(quán)限)
成功后左側(cè)Windows小手機(jī)會(huì)看到設(shè)備信息

打開Hierarchy View
點(diǎn)擊Window->Open Perspective->Hierarchy View

若期間出現(xiàn)此問(wèn)題

選擇使用本地IP,并關(guān)閉,重新啟動(dòng)即可

此時(shí),應(yīng)該會(huì)看到如下圖了:

Tree View:顯示視圖層次結(jié)構(gòu)的樹視圖。 可以使用鼠標(biāo)拖動(dòng)并放大樹底部的縮放控件
Tree Overview:為應(yīng)用程序的完整視圖層次結(jié)構(gòu)提供鳥瞰圖。 移動(dòng)灰色矩形以更改樹視圖中可見的視口。
Layout View:顯示布局的線框視圖。 當(dāng)前所選視圖的輪廓為紅色,其父視圖為淺紅色。單擊此處的視圖也會(huì)在樹視圖中選擇它,反之亦然。
hierarchy view 視圖層次結(jié)構(gòu)是布局的快照,因此不會(huì)自動(dòng)更新。 要更新層次結(jié)構(gòu)視圖,點(diǎn)擊右上角藍(lán)色金字塔(Reload the view hierarchy)。
要想保存Tree View,點(diǎn)擊右上角藍(lán)色金字塔左邊小文檔,左邊是PNG格式,右邊是PS的PSD格式。
獲取布局的繪制
選擇一個(gè)節(jié)點(diǎn),點(diǎn)擊Profile Mode按鈕,可以獲取到布局繪制的時(shí)間,如圖:

綠:表示該View的此項(xiàng)性能比該View Tree中超過(guò)50%的View都要快;例如,一個(gè)綠點(diǎn)的測(cè)量時(shí)間意味著這個(gè)視圖的測(cè)量時(shí)間快于樹中的視圖對(duì)象的50%。
黃: 表示該View的此項(xiàng)性能比該View Tree中超過(guò)50%的View都要慢;例如,一個(gè)黃點(diǎn)布局意味著這種觀點(diǎn)有較慢的布局時(shí)間超過(guò)50%的樹視圖對(duì)象。
紅: 表示該View的此項(xiàng)性能是View Tree中最慢的;例如,一個(gè)紅點(diǎn)的繪制時(shí)間意味著花費(fèi)時(shí)間最多的這一觀點(diǎn)在樹上畫所有的視圖對(duì)象。
布局性能分析
紅色節(jié)點(diǎn)是代表應(yīng)用性能慢的一個(gè)潛在問(wèn)題,下面是幾個(gè)例子,如何來(lái)分析和解釋紅點(diǎn)的出現(xiàn)原因?

如果在葉節(jié)點(diǎn)或者ViewGroup中,只有極少的子節(jié)點(diǎn),這可能反映出一個(gè)問(wèn)題,應(yīng)用可能在設(shè)備上運(yùn)行并不慢,但是你需要指導(dǎo)為什么這個(gè)節(jié)點(diǎn)是紅色的,可以借助Systrace或者Traceview工具,獲取更多額外的信息;
如果一個(gè)視圖組里面有許多的子節(jié)點(diǎn),并且測(cè)量階段呈現(xiàn)為紅色,則需要觀察下子節(jié)點(diǎn)的繪制情況;
如果視圖層級(jí)結(jié)構(gòu)中的根視圖,Messure階段為紅色,Layout階段為紅色,Draw階段為黃色,這個(gè)是比較常見的,因?yàn)檫@個(gè)節(jié)點(diǎn)是所有其它視圖的父類;
如果視圖結(jié)構(gòu)中的一個(gè)葉子節(jié)點(diǎn),有20個(gè)視圖是紅色的Draw階段,這是有問(wèn)題的,需要檢查代碼里面的onDraw方法,不應(yīng)該在那里調(diào)用。
Layout Inspector
工具打開方式
在連接的設(shè)備或模擬器上運(yùn)行應(yīng)用;
點(diǎn)擊 Tools > Android > Layout Inspector;
在出現(xiàn)的 Choose Process 對(duì)話框中,選擇想要檢查的應(yīng)用進(jìn)程,然后點(diǎn)擊 OK

工具的使用
布局檢查器會(huì)捕獲快照,將它保存為 .li 文件并打開。如圖所示,布局檢查器將顯示以下內(nèi)容:

View Tree:視圖在布局中的層次結(jié)構(gòu)。
Screenshot:帶每個(gè)視圖可視邊界的設(shè)備屏幕截圖。
Properties Table:選定視圖的布局屬性。

如果布局包括重疊視圖,則默認(rèn)情況下,只有前面的視圖可以在屏幕截圖中點(diǎn)擊。 要讓后面的視圖可以在屏幕截圖中點(diǎn)擊,請(qǐng)執(zhí)行以下操作:

在 View Tree 中右鍵點(diǎn)擊前面的視圖,然后取消選中 Show in preview。 此操作不會(huì)讓視圖內(nèi)容消失;僅會(huì)讓屏幕截圖中的可點(diǎn)擊邊界消失,以便可以點(diǎn)擊在它后面的視圖。

如果設(shè)備上的布局發(fā)生變化,布局檢查器不會(huì)更新。 必須再次點(diǎn)擊 Tools > Android > Layout Inspector,創(chuàng)建一個(gè)新的快照。每一個(gè)快照都將保存到 project-name/captures/ 內(nèi)一個(gè)單獨(dú)的 .li 文件中。

結(jié)論
Hierarchy Viewer雖然已經(jīng)廢棄了,但實(shí)際應(yīng)用中還是不能放棄的,相比較而言,Layout Inspector看布局的層級(jí)較為輕松,但Hierarchy Viewer看布局的繪制時(shí)間更為輕松,兩者相結(jié)合,對(duì)布局的檢測(cè)優(yōu)化更為輕松,所以自我感覺(jué)兩者都不能放棄。
————————————————
版權(quán)聲明:本文為CSDN博主「戴boy」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_28190653/article/details/90213258

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容