android的開發和測試工具很多,稍微總結下,方便以後用。
首先說個簡單點的,分析程序的內存泄露工具DDMS:
之前項目中遇到的一個就是2-byte arry的數據在不停的增長,導致程序運行的很卡,直到最後卡死。
如果你發現了一種類型的數據在不停的增長,就要具體問題具體分析了,因爲你是對代碼最熟的。我當時就一段代碼一段代碼的排除,最後找到泄露的地方。
另外一種方式稍微麻煩一點,我用的也不是很熟練,簡單介紹下:
然後要下載一個工具(也算是eclipse的一個插件):
MemoryAnalyzer-1.1.1
下載下來之後直接點擊MemoryAnalyzer.exe,然後open 上面生成的hprof文件,見下圖。
餅狀圖就畫出來當前可能出現問題的概率,餅狀圖下面會有詳細的文字描述。
調試內存泄露時,有時候適時比較2個地方的heap狀態是很有用的。這時你就需要生成2個單獨的HPROF文件(不要忘了轉換格式)。下面是一些關於如何在MAT裏比較2個heap dumps的內容(有一點複雜):
- 第一個HPROF 文件(using File > Open Heap Dump ).
- 打開 Histogram view.
- 在Navigation History view裏 (如果看不到就從Window > Navigation History找 ), 右擊histogram 然後選擇Add to Compare Basket .
- 打開第二個HPROF 文件然後重做步驟2和3.
- 切換到Compare Basket view, 然後點擊Compare the Results (視圖右上角的紅色"!"圖標)。
給兩個鏈接,mat說的比較詳細:
http://hi.baidu.com/weiyousheng/blog/item/c78980a2d29de9b7cbefd0a7.html