導(dǎo)言
這一節(jié)主要介紹測量/布局/繪制的檢查工具Hierarchy躯概,上節(jié)提到了一些優(yōu)化手段啰扛,不過這也需要工具來幫助我們確認(rèn)整個優(yōu)化的效果
使用準(zhǔn)備
1.首先打開Android Device Monitor,也就是DDMS
2.點擊Hierarchy View
3.如果此時沒有反應(yīng)或者提示連接失敗鄙陡,那么可以使用ViewServer來輔助沮协,有的話忽略后面的行為
4.導(dǎo)入ViewServer之后在想要分析的頁面使用谦铃,如果無法通過依賴導(dǎo)入,那么可以直接通過import module的方式來添加
接著在想要進(jìn)行分析的Activity中添加指定代碼即可赞厕,當(dāng)然了艳狐,如果項目中有BaseActivity的話,直接在Base里面添加就OK了
class TestMeasureActivity : Activity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test_rl_measure)
ViewServer.get(this).addWindow(this)
}
override fun onResume() {
super.onResume()
ViewServer.get(this).setFocusedWindow(this)
}
override fun onDestroy() {
super.onDestroy()
ViewServer.get(this).removeWindow(this)
}
}
5.重啟DDMS皿桑,然后點擊Hierarchy View
使用
重點看圖中的三個紅框
1.右上角的按鈕:首先選中頂層視圖僵驰,然后點擊右上角的按鈕,此時就會把圓點等數(shù)據(jù)顯示出來
2.三個圓點:從左到右分別表示測量唁毒、布局和繪制的耗時相對狀態(tài),紅色表示是整個繪制當(dāng)中占比時間比較大的星爪,是最值得關(guān)注的浆西,黃色次之,其次才是綠色
常用于找尋重災(zāi)區(qū)顽腾,從而進(jìn)行局部優(yōu)化
3.框內(nèi)的具體數(shù)據(jù):其實就是測量近零、布局和繪制所花費(fèi)的具體時間,之前的文章提到用Systrace來看抄肖,明顯不如使用Hierarchy View來看的實際久信,非常的明顯,優(yōu)化的效果也很直接
4.Hierarchy View非常直觀的展示了視圖的層級漓摩,從而可以方便我們進(jìn)行優(yōu)化裙士,比方說找尋同樣的節(jié)點進(jìn)行merge優(yōu)化等等
總結(jié)
Hierarchy View提供了一個非常好的方式來分析視圖層級和測量、布局及繪制的效率管毙,對于開發(fā)者來說實在是不能更方便了
文章系列:
基本的優(yōu)化總結(jié)(一)
基本的優(yōu)化總結(jié)(二)
基本的優(yōu)化總結(jié)(三)
基本的優(yōu)化總結(jié)(四)
基本的優(yōu)化總結(jié)(五)
基本的優(yōu)化總結(jié)(六)
基本的優(yōu)化總結(jié)(七)