本文部份內容來自http://blog.csdn.net/a396901990/article/details/37914465,感謝博主的分享,知識很系統很全面。緩存
這兩天在看Android的內存優化方面的知識,Android開發中最容易出現的就是內存泄露問題,由於Android內存是有限的,並且並非很大,這就要求開發人員在開發客戶端時要格外注意內存的優化,避免出現內存泄露。框架
那麼內存泄露會引起哪些問題呢?佈局
一、程序卡頓,響應速度慢(內存佔用高時JVM虛擬機會頻繁觸發GC)學習
二、程序莫名消失(當程序所佔內存越大,它在後臺的時候就越可能被幹掉。反以內存佔用越小,在後臺存在的時間就越長)優化
三、直接崩潰(OutOfMemoryError)spa
上面提到的博主,在他的博文中提出經過「5R」方法對Android的內存進行優化,「5R」即爲:Reckon(計算)、Reduce(減小)、Reuse(重用)、Recycle(回收)、Review(檢查)。他提到的一些小技巧很值得開發人員們學習哦。.net
Reckon(計算)我就不詳述了,感興趣的能夠去上文中的博客中去看看。設計
我來講一下我在開發中使用到的部分和想要學習的部分。對象
(這裏是列表,上文中的博客中對這些都有詳細的介紹哦,我這樣列在這裏是爲了讓本身思路更清晰,內容太多,我會繼續分篇整理,作大神的搬運工.ps: 排版簡直神煩)
blog
一、減小內存使用(Reduce)
(1)圖片處理
(2)對常量使用static final修飾符
(3)靜態方法代替虛擬方法
(4) 減小沒必要要的全局變量
(5)避免建立沒必要要的對象
(6)避免內部Getters/Setters
(7)避免使用浮點數
(8)使用實體類比接口好
(9)謹慎使用枚舉
(10)注意for循環
(11)使用類庫
二、重用已有資源
(1)緩存的使用(Cache)
(2)池(Pool)
(3)適配器(Adapter)
三、回收閒置的內存
(1)JAVA的垃圾回收機制
(2)資源回收(實用型)
四、檢查本身的代碼
(1)UI檢查(控件、佈局優化)
(2)設計檢查(框架、邏輯優化)