布局繪製流程

2021-09-24 08:06:31 字數 1078 閱讀 4132

1. 以上圖中,cpu中control為控制器,用於協調整個cpu的執行,包括取出指令,控制其他模組的執行

2. 綠色的為alu是算數邏輯單元,用於資料邏輯計算

3. 橙色cache和dram分別為快取和ram,用於儲存資訊

* cup的控制較為複雜,而alu較少,因此cpu擅長處理各種複雜邏輯運算,但是不擅長數學尤其是浮點運算

複製**

layoutinflater方法將布局載入進記憶體

cpu經過計算將ui物件轉換成多維圖形

通過opengl呼叫gpu

gpu對圖形進行柵格化

上述步驟如果在16ms內完成直接在顯示器上顯示,如果完不成垂直同步等待下一幀完成

60fps 在與手機進行互動的時候,如觸控與反饋60幀以下的人是可以感應出來的,60幀以上不能感覺到變化

當頻率地獄60幀的時候感覺畫面卡頓和停滯現象

android系統會每隔16ms傳送vsync訊號(1000/60=16.66ms),觸發對ui進行渲染,如果每次渲染都成功這樣就能達到流暢的畫面所需要的60fps,為了能夠實現60fps,這就意味著計算機渲染大多數操作都必須再16ms內完成

cpu繪製過程是根據cpu傳送的指令來的,他很傻,讓他畫什麼就畫什麼,16ms就畫一次,造成有些影象被其他影象進行覆蓋,底下以及面上的影象都要繪製,造成了必要的浪費

藍色 過渡繪製一次 無過渡繪製

淡綠 過渡繪製兩次

淡紅 過渡繪製三次

深紅 過渡繪製四次

這代表了4種不同程度overdraw情況,我們的目標是儘量減少紅色,overdraw看到更多的藍色區域

將ui物件轉換成多邊形和紋理

cpu傳遞資料到gpu,gpu進行繪製

cpu減少xml轉換成物件的時間

cpu減少重複繪製

效能優化看上去非常高大上,但其實就是細節決定成敗,需要對原理性的東西了解清楚,每一步都有什麼不一樣,針對每乙個步驟進行細緻化的優化,效能優化是一種思想,而不是一套具體的操作方法

布局中的背景是否有需要(主題背景)

是否可以刪除多餘布局

自定義view是否進行了裁剪

布局是否夠扁平化

UI繪製優化之布局渲染流程與原理

1 cpu 的任務繁多,做邏輯計算外,還要做記憶體管理 顯示操作,因此在實際運算的時候效能會大打折扣,在沒有 gpu 的時代,不能顯示複雜的圖形,其運算速度遠跟不上今天覆雜三維遊戲的要求。即使 cpu的工作頻率超過 2ghz 或更高,對它繪製圖形提高也不大。這時 gpu的設計就出來了。2 cpu與g...

android View繪製流程

android的view的繪製流程大概就如同我們作畫一樣,分為以下幾步 1.測量出每個view的大小。2.根據上一步測量得到的大小,確定view繪製的座標位置。3.有了具體的位置及view大小,開始繪製view。我們的activity在建立的時候就會對應的建立乙個window,用於展示我們需要展示的...

View 的繪製流程

view的measure 過程由其measure方法完成,measure 方法是乙個final型別的方法,子類不能重寫。在view的mesure方法中會呼叫onmeasure 我們只看onmeasure方法就可了。view原始碼 protected void onmeasure int widthm...