Android布局優化

2021-06-21 14:09:44 字數 1161 閱讀 6367

android布局一般是xml布局,然後呼叫setcontentview()方法,雖然這個呼叫很簡單,讓我們具體看一下setcontentview()方法的具體工作步驟:

1). android讀取應用的資源資料(apk檔案內,儲存在內部儲存器或sd卡中)

2). 解析資源資料,展開布局

3).布局展開成為activity的頂層檢視

此呼叫花費的時間取決於布局的複雜性:資源資料越大解析越慢,而更多的類也讓布局例項化變慢。呼叫setcontentview()幾乎占用了從oncreate()開始到onresume()結束之間所有時間的99%,布局通常在activity的oncreate()方法中展開,它花費的時間會直接影響activity,也就是應用的開啟時間,因此,應儘量減少布局展開花費的時間。

為了實現這一目標,一是減少建立物件數量;二是推遲建立物件。

為了減少建立的物件數量,我們可以使用標籤合併布局、使用標籤重用布局 ;為了推遲建立的物件,可以使用viewstub類推遲例項化,viewstub是輕量級且不可見的檢視,當需要時,在自己的布局中可以使用它來推遲展開布局,節省記憶體。

一、使用合併布局

如果父布局和子布局根節點為同一型別,可以使用merge將子節點布局的內容合併包含到父布局中,這樣就可以減少一級巢狀層次。

因為activity內容檢視的「父親」是個framelayout,所以當自己布局的頂層元素是乙個framelayout時,可以用標籤替換自己的framelayout,以此減少層次,下面**是乙個簡單的framelayout布局。

我們使用層次檢視工具hierarchyviewer可以看到上面**的ui層次結構,如下圖

當將標籤換成標籤的時候,層次圖如下圖

由此比較可以看出,使用標籤後,減少了一層framelayout布局,最後的布局得到的結果都是一樣的。

第二種情況:

二、使用標籤重用布局

三、使用viewstub推遲展開布局

android 布局優化

主要用到三個標籤。1 include 用於重複使用某個布局,減少 的重複。2 merge 用於減少布局的巢狀的層數。當父布局與子布局的根節點使用的是相同的布局,並且用include來包括進父布局中。那麼這個時候可以使用merge來替代掉原來的自布局的根節點。舉個栗子 xmlns android an...

Android布局優化

布局優化,系統在渲染ui介面的時候將消耗大量的資源,乙個好的ui不僅具有良好的視覺效果,更應該具有良好的使用體驗,因此布局優化就顯得非常重要。1 android ui渲染機制 人眼所感覺的流暢畫面,需要畫面的幀數達到40幀每秒到60幀每秒,相信玩兒過pc遊戲的朋友應該對幀數的概念非常清楚,最賤fps...

Android布局優化

安卓效能優化的內容很多,但是做起來其實就和擠牙膏一樣。說道布局優化,首先我們要理解圖形是如何被渲染到螢幕上的。這裡借鑑大佬的圖 其實cpu也可以用來做圖形顯示,但是為什麼又需要專門的gpu呢?簡單來說cpu作為 處理器任務很多,對於複雜圖形的計算速度跟不上需求,要單獨依賴cpu會大大加大成本,所以g...