Android布局優化

2021-07-16 22:54:46 字數 777 閱讀 4652

布局優化,系統在渲染ui介面的時候將消耗大量的資源,乙個好的ui不僅具有良好的視覺效果,更應該具有良好的使用體驗,因此布局優化就顯得非常重要。

1、android ui渲染機制

人眼所感覺的流暢畫面,需要畫面的幀數達到40幀每秒到60幀每秒,相信玩兒過pc遊戲的朋友應該對幀數的概念非常清楚,最賤fps大概在60fps左右,這也是評價乙個顯示卡效能高低的標準之一。

在android中,系統通過 vsync 型號觸發對ui的渲染,重繪,其間隔時間是16ms。這個16mx其實就是1000ms中顯示60幀畫面的單位時間,即1000/60 。如果系統每次渲染的時間都保持在16ms 之內,那麼我們看到的ui介面將是非常流暢的,但這也就需要將所有程式的邏輯都保證在16ms內。如果不能再16ms內完成繪製,那麼就會造成丟幀現象,即當前該繪製的幀被未完成的邏輯阻塞,列入一次繪製任務耗時20ms,那麼在16ms系統發出 vsync訊號時就無法繪製,該幀就被丟棄,當代下次訊號才開始繪製,導致16*2ms 內都顯示同一幀畫面,這就是畫面卡頓的原因。

android系統提供了檢測ui渲染時間的工具,開啟 「開發者選項」 ,選擇 「profile gpu rendering」,並選中 「on screen as bars」  的選項,這時候在螢幕上將顯示一些條形圖,(已小公尺手機為例開啟方式如下圖)。

每一條柱狀線都包含三部分,藍色代表測量繪製 display list 時間,紅色代表 opengl 渲染 display list  所需要的時間,黃色代表 cpu等待 gpu處理的時間。中間的綠色橫線代表 vsync 時間 16ms, 需要盡量將所有條形圖都控制在這條綠線之下。

Android布局優化

android布局一般是xml布局,然後呼叫setcontentview 方法,雖然這個呼叫很簡單,讓我們具體看一下setcontentview 方法的具體工作步驟 1 android讀取應用的資源資料 apk檔案內,儲存在內部儲存器或sd卡中 2 解析資源資料,展開布局 3 布局展開成為activ...

android 布局優化

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

Android布局優化

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