Android記憶體泄露總結

來源:互聯網
上載者:User

標籤:android   style   http   使用   檔案   資料   

Android可能發生記憶體泄露的地方總結:

1.查詢資料庫沒有關閉遊標

2.構建adapter時,沒有使用緩衝的convertView

3.Bitmap對象不使用的時候調用recycle()方法釋放記憶體

4.釋放對象的引用

5.單例模式引用context,如果使用actvitiy-context,會造成記憶體泄露,

可以使用getApplicationContext()); 或getApplication()代替。 

 

參考文檔:

A?n?d?r?o?i?d? ?內?存?泄?漏?調?試

http://wenku.baidu.com/view/3dbfb0a1b0717fd5360cdc47.html

 

分析記憶體泄露的辦法:

1.使用MAT分析記憶體泄露

2.使用procrank記錄記憶體走勢

使用procrank來跟蹤某進程的使用哪個情況我們常常藉助與指令碼。這樣就可以查看某一段時間的記憶體變化。
如建立一個檔案:trackmem.sh chmod 775 trackmem.sh
內容如下:
#!/bin/bash

while true; do
adb shell procrank | grep "com.example.studymemroyleak"
sleep 1
done
運行該指令碼:
./trackmem.sh

 這個指令碼的用途是每1秒鐘讓系統輸出一次指定進程的記憶體使用量狀況,主要觀察Uss的資料,可以直接把資料輸出到xls表格

 ./trackmem.sh > data.xls

然後產生折線圖(選擇只繪製線條),注意去掉數位單位(K)。組建圖表時,先選擇資料,然後再點插入圖表即可。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.