記憶體洩漏也稱作「儲存滲漏」,用
動態儲存
分配函式動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該記憶體單元。直到程式結束。即所謂記憶體洩漏。
記憶體洩漏簡單地說就是申請了一塊記憶體空間,使用完畢後沒有釋放掉。它的一般表現方式是程式執行時間越長,占用記憶體越多,最終用盡全部記憶體,整個
系統崩潰
。由程式申請的一塊記憶體,且沒有任何乙個
指標指向它,那麼這塊記憶體就洩露了。
從使用者使用程式的角度來看,記憶體洩漏本身不會產生什麼危害,作為一般的使用者,根本感覺不到記憶體洩漏的存在。真正有危害的是記憶體洩漏的堆積,這會最終消耗盡系統所有的記憶體。從這個角度來說,一次性記憶體洩漏並沒有什麼危害,因為它不會堆積,而隱式記憶體洩漏危害性則非常大,因為較之於
常發性和偶發性記憶體洩漏它更難被檢測到。
android應用記憶體洩漏的的原因有以下幾個:
1查詢資料庫後沒有關閉游標cursor
2 構造adapter時,沒有使用 convertview 重用
3 bitmap物件不在使用時呼叫recycle()釋放記憶體
4 物件被生命週期長的物件引用,如activity被靜態集合引用導致activity不能釋放
記憶體洩漏的原因
1 資源物件沒關閉。如cursor file等資源。他們會在finalize中關閉,但這樣效率太低。容易造成記憶體洩露。sqlitecursor,當資料量大的時候容易洩露 2 使用adapter時,沒有使用系統快取的converview。3 即時呼叫recycle 釋放不再使用的bitmap。適當降...
Android記憶體溢位及記憶體洩漏原因進解析
記憶體溢位 out of memory android系統中每乙個應用程式可以向系統申請一定的記憶體,當申請的記憶體不夠用的時候,就產生了記憶體溢位。記憶體洩漏 當某個物件不再被使用,即不再有變數引用它時,該物件占用的記憶體就會被系統 當某個物件不再被使用,但是在其他物件中仍然有變數引用它時,該物件...
android記憶體洩漏
參考 什麼是記憶體洩漏 記憶體洩露,簡單的說,就是該被釋放的記憶體沒有被釋放,一直被某個或某些例項所引用但不能被使用,導致gc不能 造成記憶體洩漏。總結的說,可以理解為長生命週期的物件一直持有短生命週期物件的引用,導致短生命週期物件一直被引用而無法被gc 記憶體洩漏是造成oom的主要原因之一,當乙個...