안녕하세요.

 

갤노트 전저에서 잘 돌아가던 어플이 ICS로 업데이트를 한후 Out Of Memory가 신나게 뜨고 있습니다.

미치겠습니다.

원인은 비트맵인데요.

 

이미지를 활용하는 어플이라 내부적으로 sdcard에 있는 이미지를 bitmap으로 불러다가

단말기 해상도에 맞게 사이즈를 변경하여 사용을 많이 하고 있습니다.

주로 사용하는 코드가 아래와 같습니다.

 

Bitmap bmp = BitmapFactory.decodeFile(filepath);

mBmp = Bitmap.createScaledBitmap(bmp, width, height, true);
bmp.recycle();
bmp = null;

 

onDestroy()에서

if (mBmp != null){
   mBmp .recycle();
   mBmp = null;
  }

 

위와 같은 방법으로 비트맵을 불러오는데요.

썸네일의 경우 갤러리나 그리드뷰등 arraylist에 넣어서 2~3배(해상도에 따라) 정도로 키워 사용을 하는 경우도 있고

원본이미지(600*900)를  그대로 사용 하는 경우도 있습니다.

그런데 자주는 아니지만 decodeFile에서 out of memory가 테스트 중간에 "이제 없어졌나?"라고 생각 할만 하면 나오고 있습니다.

테스트폰이 갤노트(ICS)랑 갤S2(진저)인데  고사양에 속하는 갤노트에서 이러니 다른 단말기들을 생각하면 한숨만 나옵니다.

 

구글링을 해보아도 recycle를 잘해주는게 답인것 같은데..

답답한 마음에 글을 올립니다.

회원님들의 경험이나 조언 좀 부탁드립니다.

 

 

 

 

 

  

profile

give & take