記憶體分析
由于有些圖檔截取的區域較大,可能看不清楚上面的字。可以放大檢視,Chrome浏覽器使用滑鼠滾輪+ctrl。
原因
為什麼要進行記憶體分析?
原因一:頻繁GC導緻UI線程卡頓
如果程式出現大量的記憶體配置設定和釋放,就意味着産生了頻繁的GC。當GC線程運作時,其他線程會停止工作(包括UI線程),直到GC完成。是以頻繁的GC,必然會導緻UI線程的卡頓。特别是性能比較差的手機上,尤為明顯。

原因二:記憶體洩漏
如果程式出現大量的記憶體配置設定,這是而GC無法回收(一般都是因為有強引用在引用該對象,也就是所謂的記憶體洩漏),那就會導緻程式最終因為記憶體枯竭而崩潰。在程式上的表現,就是抛出OutOfMemory異常。
當出現上面兩種情況的時候就需要進行記憶體分析了
分析手段
通過AndroidStudio自帶的Monitors工具集中的Memory工具來分析。
使用Memory工具分析頻繁GC
頻繁GC在Memory監視工具中的表現是出現了大量鋸齒狀記憶體波動。如果沒有出現這種類型的波動,就不是頻繁的GC了
1. 選擇要監視的線程
2. 擷取記憶體配置設定監視報告
1. 手動觸發GC
- 點選監視按鈕
,開始監視,按鈕狀态變為
,再次點選後結束監視
- 結束監視後會得到結果檔案
Android性能優化——記憶體優化記憶體分析
3. 分析監視結果檔案
分析過程已經标注在圖檔上了,也就是圖檔上的紅字
排序
展開
跳轉到相應源碼
找到相應代碼,并解決
解決
通過分析可以出現記憶體波動是由于,頻繁的建立臨時Bitmap對象導緻。在上面的業務中最終使用ColorDrawable進行代替。
總結
上面通過展示一次解決記憶體優化的過程,來展示解決記憶體問題的一種思路。希望能給大家提供一些借鑒。