1.佈局優化java
a.核心思想:儘可能減小布局文件的層級。git
b.方式:github
<include>
標籤重用佈局、<merge>
標籤減小層級、<ViewStub>
標籤懶加載。詳見佈局篇--佈局原則補充實例: Android最佳性能實踐--佈局優化技巧緩存
2.繪製優化性能優化
a.核心思想:避免在View.onDraw()
中執行大量的操做。數據結構
b.方式:工具
onDraw()
可能被屢次調用而產生大量的臨時對象,致使佔用過多內存、系統頻繁gc,下降了執行效率。3.內存泄漏優化佈局
a.內存泄漏(Memory Leak):程序在申請內存後,沒法釋放已申請的內存空間。是形成應用程序OOM的主要緣由之一。post
內存溢出(out of memory):指程序在申請內存時,沒有足夠的內存空間供其使用。性能
補充閱讀:內存溢出和內存泄漏的區別
b.可能緣由:
context.getApplicationContext()
。context.getApplicationContext()
。onDestroy()
中中止無限循環的屬性動畫,使得View持有了Activity。Activity.onDestroy()
中調用Animator.cancel()
中止動畫。unregisterReceiver()
註銷;close()
關閉;recycle()
釋放內存(2.3版本後無需手動)。getView()
每次從新實例化Item,會給gc製造壓力。c.方式:
推薦閱讀:常見的內存泄漏緣由及解決方法
4.響應速度優化
a.核心思想:避免在主線程中作耗時操做。
b.方式:開線程。
5.ListView優化
getView()
中執行耗時操做;綜合實例:ListView終極優化方法
6.Bitmap優化
7.線程優化
8.其餘
推薦閱讀:Android開發性能優化總結、 Android最佳性能實踐系列
最後,是有助於提升程序可維護性的幾點建議,一塊兒共勉:
但願這篇文章對你有幫助~