Android性能優化有多種方式,在多個方面都有體現:緩存
佈局優化:佈局優化的思想就是減小布局的層級,使用<include/>, <merge/> , <ViewStub/>
來優化佈局。性能優化
繪製優化:繪製優化是指在View
的onDraw()
方法內避免執行大量的操做。不要在在onDraw()
方法內建立大量的局部對象,這不只會佔用過多內存還會頻繁gc
,下降程序的效率;不要在onDraw()
方法內執行耗時操做,繪製時間要保持在16ms之內,防止界面卡頓。異步
內存泄漏優化:內存泄漏,是指一段內存在該釋放的時候卻得不到釋放,致使App內內存越用越少。一,靜態變量致使的內存泄漏,靜態變量的生命週期是整個程序的生命週期,因此不要讓靜態變量引用生命週期比程序生命週期短的對象;二,單例模式致使的內存泄漏,單例模式對象引用局部對象致使內存泄漏;三,屬性動畫或線程致使的內存泄漏,屬性動畫和線程不去主動中止,會一直執行下去的,要在適當的時候中止屬性動畫和線程。佈局
響應速度優化和ANR
:響應速度優化是指避免在主線程作耗時操做,由於操做都是在主線程響應的 ;解決ANR
問題,若是不能在代碼中找到致使ANR
的緣由,則能夠分析traces.txt
找到緣由,traces.txt
文件會記錄致使ANR
的緣由的。性能
ListView
和Bitmap
優化:ListView
採用convertView+ViewHolder
緩存策略,來避免在getView()
中執行耗時操做,三級緩存,異步加載,不要在滑動的時候去加載圖片,開啓硬件加速,來加速渲染;Bitmap
的優化則是加載壓縮後的Bitmap
,採樣率。優化
線程優化:不要開啓大量線程,採用線程池。動畫
參考 《Android開發藝術探索》線程