布局檢測(cè)與優(yōu)化(三):Hierarchy Viewer與Layout Inspactor工具

工具推薦

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

Hierarchy Viewer官方地址

Layout Inspector官方地址

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

Hierarchy Viewer

工具打開(kāi)方式

AS版本:3.3.2 打開(kāi)方式:

  • 本地安裝SDK目錄->sdk->tools->monitor.bat

老版的AS打開(kāi)方式:

  • 本地安裝SDK目錄->sdk->tools->hierarchyviewer.bat
  • Android Studio : 工具欄->Tools->Android->Android Device Monitor
  • 在命令行輸入 hierarchyviewer

工具的使用

設(shè)備連接(真機(jī)需要手機(jī)root權(quán)限)

成功后左側(cè)Windows小手機(jī)會(huì)看到設(shè)備信息


在這里插入圖片描述
打開(kāi)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)的樹(shù)視圖冤馏。 可以使用鼠標(biāo)拖動(dòng)并放大樹(shù)底部的縮放控件
  • Tree Overview:為應(yīng)用程序的完整視圖層次結(jié)構(gòu)提供鳥(niǎo)瞰圖日麸。 移動(dòng)灰色矩形以更改樹(shù)視圖中可見(jiàn)的視口。
  • Layout View:顯示布局的線框視圖。 當(dāng)前所選視圖的輪廓為紅色代箭,其父視圖為淺紅色墩划。單擊此處的視圖也會(huì)在樹(shù)視圖中選擇它,反之亦然嗡综。
  • 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í)間快于樹(shù)中的視圖對(duì)象的50%晨缴。
  • 黃: 表示該View的此項(xiàng)性能比該View Tree中超過(guò)50%的View都要慢译秦;例如,一個(gè)黃點(diǎn)布局意味著這種觀點(diǎn)有較慢的布局時(shí)間超過(guò)50%的樹(shù)視圖對(duì)象。
  • 紅: 表示該View的此項(xiàng)性能是View Tree中最慢的击碗;例如,一個(gè)紅點(diǎn)的繪制時(shí)間意味著花費(fèi)時(shí)間最多的這一觀點(diǎn)在樹(shù)上畫(huà)所有的視圖對(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è)是比較常見(jiàn)的拗引,因?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

工具打開(kāi)方式

  • 在連接的設(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 文件并打開(kāi)蝴光。如圖所示她渴,布局檢查器將顯示以下內(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é)兩者都不能放棄勿决。

具體如何進(jìn)行優(yōu)化乒躺,以及一些優(yōu)化的建議,請(qǐng)聽(tīng)下回分解~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末低缩,一起剝皮案震驚了整個(gè)濱河市嘉冒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖健爬,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件控乾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡娜遵,警方通過(guò)查閱死者的電腦和手機(jī)蜕衡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)设拟,“玉大人慨仿,你說(shuō)我怎么就攤上這事∧呻剩” “怎么了镰吆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)跑慕。 經(jīng)常有香客問(wèn)我万皿,道長(zhǎng),這世上最難降的妖魔是什么核行? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任牢硅,我火速辦了婚禮,結(jié)果婚禮上芝雪,老公的妹妹穿的比我還像新娘减余。我一直安慰自己,他們只是感情好惩系,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布位岔。 她就那樣靜靜地躺著,像睡著了一般堡牡。 火紅的嫁衣襯著肌膚如雪抒抬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天悴侵,我揣著相機(jī)與錄音瞧剖,去河邊找鬼。 笑死可免,一個(gè)胖子當(dāng)著我的面吹牛抓于,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浇借,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼捉撮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了妇垢?” 一聲冷哼從身側(cè)響起巾遭,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肉康,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后灼舍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吼和,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年骑素,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炫乓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡献丑,死狀恐怖末捣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情创橄,我是刑警寧澤箩做,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站妥畏,受9級(jí)特大地震影響邦邦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜醉蚁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一圃酵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧馍管,春花似錦、人聲如沸薪韩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俘陷。三九已至罗捎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拉盾,已是汗流浹背桨菜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捉偏,地道東北人倒得。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像夭禽,于是被迫代替她去往敵國(guó)和親霞掺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容