갤럭시S 를 테스트폰으로 삼고 한동안 개발을 하였습니다.


그런데 넥서스원, 디자이어 같은 핸드폰들에서는 아예 실행조차 안되는 현상을 맞게 되었고


디버그를 해본 결과 리소스를 로딩하는 도중에 Out of memory 오류가 발생하였습니다.


대책으로 AndEngine 도 사용해보고 OpenGL ES 로 사용해보았으나 생각해보니 퍼포먼스상의 문제가 아니였습니다.


그래서 Bitmap.decodeResource() 함수를 사용할 때에 어떻게 하면 리소스를 잘 관리할 수 있을까에 대해 고민하다가 글을 올리게 되었습니다.


Game 의 여러 Scene 별로 리소스를 따로 로딩하고, 안쓰는건 없애는 방식 또한 잘 안되는 것 같네요.


구글링을 꽤나 오래 해봤는데 같은 Out of memory 의 발생원인들은 거의 모두 카메라(사진)쪽에서 스케일링에 문제가 발생하던데 전 스케일링같은 과정은 단 한번도 거치기 않았습니다.. ㅠㅠ


그리고 꽤나 많은 리소스들을 모두 사용해야 합니다.


dalvik.system.VMRuntime.getRuntime().setTargetHeapUtilization(0.7f);


이런것도 먹히지 않는 것 같네요 ㅠㅠ 도와주세요!