Java 如何有效管理Android应用程序的内存(堆)

Java 如何有效管理Android应用程序的内存(堆),java,android,memory-leaks,out-of-memory,heap-memory,Java,Android,Memory Leaks,Out Of Memory,Heap Memory,我是android新手,谁能告诉我如何编写内存管理方面的有效代码 public class XXX extends Activity { EditText et; ImageView iv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我是android新手,谁能告诉我如何编写内存管理方面的有效代码

public class XXX extends Activity  {

EditText et;
ImageView iv;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    et = (EditText) findViewById(R.id.editText);
iv  = (ImageView) findViewById(R.id.iv);


}

     public void release(){
 et=null;

 Drawable drawable = ((ImageView) iv).getDrawable();
        if (drawable instanceof BitmapDrawable) {
            BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
            bitmapDrawable.getBitmap().recycle();
        }

 iv=null;
System.gc();
}

 public void onPic(View v){
// code to capture image
 }

public void onSave(View v){
    DBHelper dbHelper = new DBHelper(this);
    SqliteDatabase db = dbHelper.getReadableDatabase();

String name =   et.getText().toString();

ContentValues cv cv= new ContentValues();
// saving , calling release();  and going back to main screen


}

我能做些什么来避免内存不足、挂断电话?

位图不容易释放内存,这是导致内存不足异常的主要原因。您可以调整位图的大小并加载它

这可能有助于您显示高效的位图加载:

您可以从这里阅读完整的理解文档

在“图像视图”中显示图像时,始终可以将图像大小调整为所需大小,然后进行设置以避免内存不足。