android改進佈局性能

對於android應用程序的用戶體驗來說,佈局的影響是很直接很關鍵的一部分,不合理的佈局可能導致內存飢餓,和反應不靈敏,改進佈局性能,可以降低內存佔用使界面更平滑。

一、優化佈局結構

使用嵌套實例LinearLayout可能會導致比較深層次的嵌套,嵌套LinearLayout使用該layout_weight參數的幾個實例每個子元素需要測量兩次,當用於ListView中時佈局被重複地膨脹。

Android SDK工具包括一個名爲Hierarchy Viewer的工具,可讓您在應用程序運行時分析您的佈局。使用此工具可以幫助您發現佈局性能的瓶頸。
層次查看器可以通過允許您在連接的設備或模擬器上選擇正在運行的進程,然後顯示佈局樹。每個塊上的交通信號燈表示其測量,佈局和繪圖性能,可幫助您識別潛在的問題。

使用嵌套實例LinearLayout

可以看到有一個3層次的層次結構,在佈置文本項目時會出現一些問題。可以點擊項目顯示每個階段的時間,以此來衡量,佈局和渲染,以及您應該花時間優化哪些地方。

修改後

因爲上面的佈局性能由於嵌套而減慢LinearLayout,所以性能可以通過平鋪佈局來改善 - 使佈局變淺而不是狹窄而深入。A RelativeLayout作爲根節點允許這樣的佈局。因此,當將此設計轉換爲使用時RelativeLayout,可以看到佈局變爲2級層次結構。
大多數時間差異是由於layout_weight在LinearLayout設計中的使用,這可能會降低測量速度。

二、複用佈局

**使用**include和merge標籤在當前佈局中嵌入另一個佈局。
創建一個準備重用的XML佈局文件並定義好內容,在需要使用的地方添加include標籤@layout指向重用的XML文件,並可以修改該佈局根視圖的所有佈局參數。

merge 當在另一箇中包含一個佈局時,該標籤有助於消除視圖層次結構中的冗餘視圖組。例如,如果您的主要佈局是垂直的LinearLayout,其中可以在多個佈局中重新使用兩個連續的視圖,則放置兩個視圖的可重用佈局需要自己的根視圖。然而,使用另一個LinearLayout作爲可重用佈局的根將導致垂直LinearLayout內部的垂直LinearLayout。LinearLayout 除了減慢您的UI性能之外,嵌套不提供真正的目的。
爲了避免包含這樣一個冗餘視圖組,您可以使用該 merge元素作爲可重用佈局的根視圖

三、ListView的數據處理

在後臺線程中加載網絡數據,圖片等,完成後在通知UI線程更新;
使用ViewHolder來保存視圖,避免重複去findViewById()控件,節約處理器週期。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章