編輯:關於Android編程
過度繪制(Overdraw)是指在一幀的時間內像素被繪制了多次;
理論上一個像素每次只繪制一次是最優的,但是由於層疊的布局導致一些像素會被多次繪制,而每次繪制都會對應到CPU的一組繪圖命令和GPU的一些操作,所以對重疊不可見元素的重復繪制會產生額外的計算,需要盡量減少Overdraw的發生。
Android系統提供了測量Overdraw的選項,在開發者選項-調試GPU過度繪制(Show GPU Overdraw),打開選項就可以看到當前頁面Overdraw的狀態。
根據overdraw的次數會顯示不同的顏色來區分
transparent = no overdraw blue = 1 layer green = 2 layers light-red = 3 layers dark red = you’re doing it wrong總的原則就是:盡量避免重疊不可見元素的繪制
去除不需要的背景資源
在theme中添加android:windowbackground="null"
; 在Activity中設置getWindow().setBackgroundDrawable(null)分段設置背景
有時候為了方便會先給Layout設置一個整體的背景,再給子View設置背景,這裡也會造成重疊,如果子View寬度mach_parent,可以看到完全覆蓋了Layout的一部分,這裡就可以通過分別設置背景來減少重繪。
View onDraw()方法
自定義View繪制時避免重疊部分的繪制,可以使用
canvas.clipRect(); // 裁剪canvas
canvas.quickReject(); // 判斷矩形區域是否相交
Android Performance Patterns: Understanding Overdraw
Android Performance Patterns: Invalidations, Layouts, and Performance
原文鏈接:http://code.tutsplus.com/tutorials/dependency-injection-with-dagger-2-on-android
書接上回,我們已經了解了一些關於適配的一些相關概念,接下來我們會了解一下,在設置布局時我們應該注意的地方。盡量不去設定具體的尺寸值。為了確保布局適應各種尺寸的屏幕,在保證
1.主要代碼: 聲明: private View shareView; private PopupWindow pop; 在onCreate方法裡: // 引入
歡迎使用Markdown編輯器寫博客很多時候,我們在使用應用時,會出現輸入法軟鍵盤彈出的問題,通常情況下,我們默認會使用戶點擊返回鍵或者下一步對軟鍵盤進行隱藏。為了更好的