View的視圖優化

基本原理:android

渲染機制算法

android的刷新頻率是60fps,也就是說要在16ms內完成一次刷新,若是超時刷新,那麼就容易看到卡頓的畫像,也是丟幀的現象。若是刷新時間短,那麼咱們就能夠看到一個很是流暢的動畫,Android系統每16m會向渲染硬件發出VSYNC命令讓其渲染,緩存

VSYNC有兩個概念:多線程

第一:刷新頻率,指的是硬件定義的刷新頻率,由硬件參數決定,優化

第二:GPU每秒繪製的頻率,好比60,動畫

若是GPU的頻率大於硬件的刷新頻率,那麼能保證每次刷新都是新數據,若是小於,沒那就會出現數據沒有刷新,丟幀的現象。操作系統

渲染的流程線程

渲染是有CPU執行生成Texture紋理和Polygons,而後把這些數據交給GPU進行柵格化處理,最後把數據傳遞給顯示器。對象

渲染優化ip

第一:內存優化:

出現的問題有:在一個16ms內,因爲引起GC次數過多,致使沒有完成刷新,致使最後的卡頓現象。那麼須要解決內存的優化。優化思路是減小GC次數,那麼就要節省內存開銷以及及時釋放內存。節省內存開銷:減小沒必要要的對象重複建立(循環內部建立對象,使用String進行+操做),減小內存泄漏,增長對象複用。

第二:CPU優化:

若是CPU過多的執行一些操做,致使沒有CPU及時生成紋理數據交給GPU處理,那麼也會致使源頭數據得不到更新,那麼CPU優化也很重要,優化思路是:減小CPU空轉時間。那麼迴歸操做系統,咱們的方法有:使用多線程處理,使用緩存和批處理,優化耗時的算法。對於android來講,須要CPU執行的操做有視圖的測量,建立,回收操做,那麼咱們就須要減小沒必要要的視圖建立工做,那麼咱們要減小試圖嵌套層級,減小重繪,減小Gone的操做致使的從新測量操做。咱們的方案有:merge方法減小層級,ViewStub延緩試圖加載,

第三:GPU優化:

一樣是卡頓現象,GPU主要的工做是柵格化處理,那麼減小重繪對GPU來講就顯得很是重要。減小重繪就是咱們重要的優化方案,解決方案有;對於背景色減小層級設置,自定義的空間要用clipRect方法減小繪製,

相關文章
相關標籤/搜索