android或 java記憶體洩漏需要注意的地方

2021-07-06 05:52:58 字數 1226 閱讀 4249

根據個人經驗總結:

1.盡量避免使用 static(其生命週期是與應用程式共存亡的)宣告變數。

2.使用後要及時**bitmap->recycle();

3.集合用完盡量賦值為null;

4.使用內部類是,盡量使用靜態內部類;因為非靜態內部類都持有外部類的乙個強引用。若不使用不能使用靜態內部類,就提出此類,使用弱應用;以hanlder為例

靜態內部類

/** *

* 實現的主要功能。

*@version 1.0.0

*@author abay zhuang

* create at 2014-7-28

*/public

class

handleractivity2

extends

activity

public

void

todo() ;

private

static

class

myhandler

extends

handler

@override

public

void

handlemessage(message msg) }}

}外包類public

class

handleractivity2

extends

activity

public

void

todo() ;

}public

class

myhandler

extends

handler

@override

public

void

handlemessage(message msg)

}}

5.listview 的adapter要用viewholder。

import android.widget.toast;

public

class

extends

private

@override

public

void

oncreate()

public

return instance;

}public

void

testtoast()}

使用 CrtSetDbgFlag檢測記憶體洩露

一 介紹 動態分配 記憶體是c c 程式語言乙個最強的特點,但是中國哲學家孫 sun tzu,我不知道是誰?那位知道?指出,最強的同時也是最弱的。這句話對c c 應用來說非常正確,在記憶體處理出錯的地方通常就是bugs產生的地方。乙個最敏感和難檢測的bug就是記憶體洩漏 沒有把前邊分配的記憶體成功釋...

STM SETIMAGE引起的gdi記憶體洩露

最近給程式加了乙個動畫功能後,發現程式會引起及其嚴重的記憶體洩露,找了半天發現是呼叫stm setimage引起的。素以在此將使用stm setimage遇到的問題記錄一下。我的程式將動畫的所有幀提前載入後用定時器迴圈用stm setimage把點陣圖控制代碼傳送到視窗顯示,發現沒顯示一次就洩露好幾...

使用memwatch跟蹤linux記憶體洩漏

參考 根據log可以查詢出申請了卻沒有釋放記憶體的行號。一 簡介 memwatch可以跟蹤程式中的記憶體洩漏和錯誤,能檢測雙重釋放 double free 錯誤釋放 erroneousfree 沒有釋放的記憶體 unfreed memory 溢位 overflow 下溢 underflow 等。解壓...