Android Tools 之一 Hierarchy Viewer

gengzhibo發表於2018-04-01

Android Tools 之一 Hierarchy Viewer

歡迎大家訪問我的個人部落格

本系列旨在介紹一些被忽略的優質工具 畢竟 能被當做自帶的工具總有些做的比較好的地方不是

Hierarchy Viewer

Hierarchy Viewer是一個可以用來檢視View的使用工具 android sdk中自帶

Optimizing Your UI -官方網站 需科學上網

啟動Hierarchy Viewer

hierarchyviewer工具在sdk/tools路徑下

再次開啟後會出現如下提示

The standalone version of hieararchyviewer is deprecated.
Please use Android Device Monitor (tools/monitor) instead.
複製程式碼

主要想說的就是 單獨使用hieararchyviewer已經不被建議 建議使用Android Device Monitor(Android Device Monitor的相關使用後續會詳細介紹)

直接執行monitor或者在在Android Studio -> tools -> android -> Android Device Monitor中將hieararchyviewer工具開啟

以下對hieararchyviewer工具進行操作均為直接開啟hieararchyviewer工具 和通過monitor工具開啟的hieararchyviewer的UI可能略有不同 以直接開啟hieararchyviewer工具操作為準

無法正常使用

在連線過程中可能遇到無法連線到手機的問題 詳情參考以下文章

HierachyViewer無法連線真機除錯

HierachyViewer無法連線真機除錯詳解

使用Hierarchy Viewer

Hierarchy Viewer 1-1

成功連線後會出現如上頁面

當前頁面正在顯示的程式被加粗顯示

(那些看著是空的位置 進入後會顯示通知欄中的View佈局)

選擇想要檢視的程式後進入 Load View Hierarchy頁面

Hierarchy Viewer 1-2

下面對不同部分分別介紹一下

Hierarchy Viewer 1-3

  1. Save as PNG: 把這個佈局的層級另存為png格式
  2. Capture Layers: 把這個佈局的層級另存為psd格式

可以檢視各層級的情況

Capture Layers

  1. Load View Hierarchy: 重新載入這個view層級圖
  2. Evaluate Contrast: 檢視層級佈局的具體情況

Evaluate Contrast

  1. Display View: 在單獨的一個視窗中顯示所選擇的view
  2. Invalidate Layout: 重繪當前視窗
  3. Request Layout: 對當前view進行layout
  4. Dump DisplayList: 使當前view輸出它的顯示列表到logcat中
  5. Dump Theme: 下載這個view主題的資源
  6. Profile Node: 得到measure,layout,draw的效能指示器

Hierarchy Viewer 1-6

選取某個view節點可以檢視選取的View的詳情

Hierarchy Viewer 1-6

關於View的渲染機制可以參考一下本人關於android View相關機制解析的文章 Android View 相關原始碼分析之三 View的繪製過程

關於對應渲染時間的速度中 我麼知道View繪製分為measure layout 和draw三個過程 三個點分佈對應以上三個過程 分為綠 黃 紅三個顏色 綠色代表該View在本view tree中速度是前50% 黃色表示後50% 而紅色表示是花費時間最長的

還記得最開始使用Hierarchy Viewer中上方有Inspect screenshot的按鈕 可以檢視當前Activity的畫素情況

Inspect screenshot

(層級十分的清晰 就不仔細解釋了)

解釋下相關功能

  1. Save as PNG: 儲存當前顯示的頁面為png格式
  2. Refresh Screenshot: 重新整理畫素檢視和放大鏡檢視(右邊那兩個)
  3. Refresh Tree: 重新整理View tree
  4. Load Overlay: 在右側放大鏡檢視中中載入一個覆蓋圖(官網中沒有給出詳細的定義 主要根據相關介紹理解 略有偏差 歡迎指出)
  5. Show In Loupe: 在中間的畫素檢視中顯示之前載入的圖片
  6. Auto Refresh: 會根據下發設定的Refresh Rate的時間自動 更新View tree

以上

相關文章