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工具操作為準
無法正常使用
在連線過程中可能遇到無法連線到手機的問題 詳情參考以下文章
使用Hierarchy Viewer
成功連線後會出現如上頁面
當前頁面正在顯示的程式被加粗顯示
(那些看著是空的位置 進入後會顯示通知欄中的View佈局)
選擇想要檢視的程式後進入 Load View Hierarchy頁面
下面對不同部分分別介紹一下
- Save as PNG: 把這個佈局的層級另存為png格式
- Capture Layers: 把這個佈局的層級另存為psd格式
可以檢視各層級的情況
- Load View Hierarchy: 重新載入這個view層級圖
- Evaluate Contrast: 檢視層級佈局的具體情況
- Display View: 在單獨的一個視窗中顯示所選擇的view
- Invalidate Layout: 重繪當前視窗
- Request Layout: 對當前view進行layout
- Dump DisplayList: 使當前view輸出它的顯示列表到logcat中
- Dump Theme: 下載這個view主題的資源
- Profile Node: 得到measure,layout,draw的效能指示器
選取某個view節點可以檢視選取的View的詳情
關於View的渲染機制可以參考一下本人關於android View相關機制解析的文章 Android View 相關原始碼分析之三 View的繪製過程
關於對應渲染時間的速度中 我麼知道View繪製分為measure layout 和draw三個過程 三個點分佈對應以上三個過程 分為綠 黃 紅三個顏色 綠色代表該View在本view tree中速度是前50% 黃色表示後50% 而紅色表示是花費時間最長的
還記得最開始使用Hierarchy Viewer中上方有Inspect screenshot的按鈕 可以檢視當前Activity的畫素情況
(層級十分的清晰 就不仔細解釋了)
解釋下相關功能
- Save as PNG: 儲存當前顯示的頁面為png格式
- Refresh Screenshot: 重新整理畫素檢視和放大鏡檢視(右邊那兩個)
- Refresh Tree: 重新整理View tree
- Load Overlay: 在右側放大鏡檢視中中載入一個覆蓋圖(官網中沒有給出詳細的定義 主要根據相關介紹理解 略有偏差 歡迎指出)
- Show In Loupe: 在中間的畫素檢視中顯示之前載入的圖片
- Auto Refresh: 會根據下發設定的Refresh Rate的時間自動 更新View tree
以上