android程序內存泄漏的原因和解決辦法


     內存泄漏也稱作“存儲滲漏”,用動態存儲分配函數動態開辟的空間,在使用完畢后未釋放,結果導致一直占據該內存單元。直到程序結束。即所謂內存泄漏。        

image

      內存泄漏簡單地說就是申請了一塊內存空間,使用完畢后沒有釋放掉。它的一般表現方式是程序運行時間越長,占用內存越多,最終用盡全部內存,整個系統崩潰。由程序申請的一塊內存,且沒有任何一個指針指向它,那么這塊內存就泄露了。

       從用戶使用程序的角度來看,內存泄漏本身不會產生什么危害,作為一般的用戶,根本感覺不到內存泄漏的存在。真正有危害的是內存泄漏的堆積,這會最終消耗盡系統所有的內存。從這個角度來說,一次性內存泄漏並沒有什么危害,因為它不會堆積,而隱式內存泄漏危害性則非常大,因為較之於常發性和偶發性內存泄漏它更難被檢測到。

Android應用內存泄漏的的原因有以下幾個:

1查詢數據庫后沒有關閉游標cursor 
2 構造Adapter時,沒有使用 convertView 重用
3 Bitmap對象不在使用時調用recycle()釋放內存
4 對象被生命周期長的對象引用,如activity被靜態集合引用導致activity不能釋放

內存泄漏的發現:

通過DDMS中的heap工具,去發現是否有內存溢出。

內存泄漏如何解決:

通過內存分析工具 MAT(Memory Analyzer Tool),找到內存泄露的對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM