谷歌05年初發布效能優化典範,是的開發者學會如何去識別、診斷、解決安卓應用開發中所存在的效能問題。首當其衝的便是渲染的效能優化。
在正常的開發中,可以移除不必要的background,以減少繪製的程度。
如設定了主布局檔案的背景顏色,就可以移除listview以及listview的items中的一些background。
以及當我們在layout中設定了背景色,activity的view中的背景就沒有必要了,可以呼叫getwindow().setbackgrounddrawable(null);設定。
當我們繪製了多個view的時候,如果每乙個view並不需要完全繪製在螢幕上時,我們就可以在ondraw方法中使用canvas.cliprect(0, 0, 0,0);方法
安卓sdk中包含著歌工具,在android studio中tools下面的android下的android device monitor就能看到。hierarchy viewer可以很方便視覺化的檢視螢幕上套嵌view結構,是檢視你的view結構的實用工具。
Android UI效能優化 Overdraw
什麼是overdraw?overdraw就是螢幕上某個畫素點在同一幀被繪製了多次。在多層布局結構中,不可見部分也會被繪製。舉個例子,乙個白色頁面上有乙個按鈕。系統首先繪製白色背景,然後在白色背景上繪製按鈕,最後在按鈕背景上繪製按鈕內容。那麼按鈕和按鈕內容就造成了overdraw。其實overdraw...
Android UI效能優化 理論篇
如果你的某個操作花費時間是24ms,系統在得到vsync訊號的時候就無法進行正常渲染,這樣就發生了丟幀現象。那麼使用者在32ms內看到的會是同一幀畫面。使用者容易在 ui 執行動畫或者滑動 listview 的時候感知到卡頓不流暢,是因為這裡的操作相對複雜,容易發生丟幀的現象,從而感覺卡頓。有很多原...
Android UI效能優化 過度繪製篇
每過幾年,就會有傳聞說某個博物館在用x光掃瞄一副無價的名畫之後,發現畫作的作者其實重用了老的畫布,在名畫的底下還藏著另一副沒有被發現的畫作。有時候,博物館還能用高階的影象技術來還原畫布上的原作。android裡面的view的繪製就是類似的情況。當android系統繪製螢幕的時候,先畫父view,然後...