android使用桢布局,Android性能优化UI篇
在說性能優化之前,我們必須了解為什么要做性能優化,首先第一點肯定是為了用戶體驗,你想啊要是你的App用起來很卡,頁面加載慢騰騰的,用戶能一直忍受你嗎?其二性能優化也是對我們程序員自己的考驗,優化過程需要我們掌握很多的東西,比如說Java的內存模型,垃圾回收機制,Dalvik和Art虛擬機,Android底層等等等等知識,還有很多工具的使用,這章主要記錄一些UI優化方面的東西。
UI優化主要的目的是為了讓頁面更加流暢,大家都知道Android系統每隔16ms發出垂直同步(VSYNC)信號,觸發對UI的渲染,如果每次都在16ms內渲染成功,達到流暢的畫面所需要的60fps(表示60楨每秒),那用戶就不會感覺到頁面的卡頓,
如果頁面在16ms內還沒有繪制完,就會出現丟幀現象,還是顯示的上一楨頁面,給人感覺卡住了一樣,
所以我們優化要做的事情就是盡量讓頁面在16ms內繪制完,解決這種過度繪制的問題,下面我們就具體說說怎么解決這個問題。
我們的App都是有很多頁面,首先得找到要優化的頁面,這里我推薦使用兩個工具,一個是手機自帶的顯示過度繪制區域的功能,我用的魅族手機是在開發者選項里面的,另一個是Android Studio自帶的工具Lint,我個人更喜歡用手機自帶的這個工具,比較直觀的顯示頁面的繪制情況,在開啟這個功能后頁面顯示如下圖,
App的每個頁面的控件都會加上額外的圖層,總共4種顏色,代表4種繪制的級別,如下圖,
其中紅色代表的是最嚴重的過度繪制,從上面依次減弱,我們要做的就是修改這些區域,讓它達到藍色這種級別。通過使用這個工具,我們能很快的找到需要修改的頁面。
在找到這個頁面后,接下來我們就得分析是什么原因導致這個頁面過度繪制,在這里我們還得使用一個工具Hierarchy View,它可以把整個頁面中每個控件的所占區域用矩形標示出來,并計算出每個控件在測量布局和繪制所花費的時間,而且過度繪制的控件會用紅色的圓圈標出來,至于怎么使用這個工具可以看這篇文章,通過這個工具我們可以把問題具體到某個控件上面,接下來就是解決這個控件的過度繪制問題了,在這里提供幾個解決的思路:
1,減少頁面的布局層次結構。
2,減少不必要的背景圖片或背景顏色。
3,減少View的更新次數,比如調用View的requestLayout或者invalidate,setVisiable等等方法,都會導致View重新繪制。
4,嘗試使用Android系統提供等標簽,不要把一大堆控件放在同一個xml布局文件里面。
5,嘗試使用RecyclerView代替ListView吧,RecyclerView還能與實現嵌套滑動接口的控件做各種交互。
總結,把自己遇到的問題寫出來,給自己提個醒,也希望能給一些人提供一個思路。
參考:
http://www.jianshu.com/p/e9e05ce5b0c9,
http://www.csdn.net/article/2015-01-20/2823621-android-performance-patterns
總結
以上是生活随笔為你收集整理的android使用桢布局,Android性能优化UI篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android小程序备忘录,撸一个会话备
- 下一篇: android tv 悬浮窗口,andr