本章以實際案例分析在android開發中,性能方面的優化和處理。設計到知識點有弱引用,memory monitor,Allocation Tracker和leakcanary插件。 1.測試demo 下載bug項目:https://github.com/lzyzsd/MemoryBugs,請註意配合 ...
本章以實際案例分析在android開發中,性能方面的優化和處理。設計到知識點有弱引用,memory monitor,Allocation Tracker和leakcanary插件。
1.測試demo
下載bug項目:https://github.com/lzyzsd/MemoryBugs,請註意配合使用MemoryMonitor, AllocationTracker以及HeapDump,LeakCanary等工具來查找潛在的記憶體問題,並嘗試解決。
2.測試工具介紹
(1)memory monitor簡介
AndroidStudio提供了Memory Monitor來實時顯示應用運行時記憶體占用情況,下邊藍色部分是現在占用的記憶體,上麵灰色的部分顯示是已回收的記憶體。如果在圖上看到尖峰,也就是快速分配記憶體又被回收,也就是發生了記憶體抖動,這裡就是需要優化的地方。在模擬器或者真機中Debug項目,可實時監看Memory,CPU,NetWork等的資源占用情況。
(2)Allocation Tracker簡介
單擊Allocation tracker標簽,就會打開一個新的視窗,單擊“Start Tracing”按鈕;然後,讓應用運行你想分析的代碼。運行完畢後,單擊“Get Allocations”按鈕,一個已分配對象的列表就會出現第一個表格中。
單擊第一個表格中的任何一項,在表格二中就會出現導致該記憶體分配的棧跟蹤信息。通過allocation tracker,不僅知道分配了哪類對象,還可以知道在哪個線程、哪個類、哪個文件的哪一行。查看方式如下: