안녕하세요 제가 최근에 개발한 앱이
갤럭시 노트2 젤리빈에서만 OOM이 자꾸 떠서 환장하겠습니다..
지금 사용하는 Bitmap들은 모두 사용하지 않게 되는 시점에서 recycle을 해주고 있고,
Activity가 갖고 있는 뷰들의 리소스들은 Activity가 소멸될때 call back 해제, recycle해주고 있습니다.
Adapter들의 리소스들도 사용이 끝나면 바로 정리하고 있습니다.
아무튼 예전부터 구글링 및 안펍 검색을 통해서 배운 메모리 관리 기법은 대부분 적용되어
있습니다..
갤럭시 s1부터 옵티머스G까지, 모든 기기는 아니지만 꽤 넓은 범위의 기기들을 테스트하면서
OOM문제가 생긴적이 없었는데 쌩뚱맞게 최신폰인 갤노트2에서 이러네요..
로그를 확인해보니 GC_EXTERNAL_ALLOC, GC_FOR_MALLOC 이 계속 뜨다가
Apk에 넣어놓은 이미지 리소스를 불러오는 도중에 OOM이 뜹니다.
지금 원인은 확실히는 모르지만
이미지 리소스를 줄이고 이미지 사이즈를 줄여보려고 합니다..(지금 큰 이미지는 400*200 사이즈도 많고,
처음 시작할때 인트로 이미지리소스는 사정상 800*1420을 쓰고 있습니다. 사용한 후 정리하긴 하는데
정 안되면 이 이미지도 바꾸어볼 생각입니다.)
혹시 최근에 개발하시다가 저와 같은 현상을 겪는 분 계신가요?
겪어보신 분이나 짐작가시는 부분이 있으신 분들의 도움 부탁드립니다..
ODDM에서 안드로이드 개발자로 일하고 있습니다.
이제 1년 정도 되었네요.
선배님들이 좋은 정보 공유해주시고 저희 후배들에게 많은 가르침을 주시는 점
항상 감사하게 생각하고 있습니다.
서로가 서로에게 도움이 되는 그런 환경이 계속 발전해나갔으면 좋겠습니다.
대한민국 개발자 화이팅!
뭐 해결책이라고 하기도 좀 그렇지만...
혹시 문제 현상이 쉽게 재현된다면 MAT 함 돌려서 혹시 모를 사용되지 않는 리소스가 너무 오래 살아있는 경우가 있는지 체크해보시면 어떨까요?
그리구 저 같은 경우는 노트2 에서 OOM 으루 죽는건 아니구...
좀 큰 사이즈 이미지를 로드했더니 화면이 깜해지더군요...
고양이의 보고로는... OpenGL 어쩌구에서 문제가 발생했다고 해서 조금 찾아보니
약 화면크기의 2배를 넘어가는 이미지를 로드 할 경우 였나? 로드 후 드로잉 하려고 하는 경우였나 openGL 쪽에서 패스해버리는 경우를 본적이 있습니다.
어플이 비정상 종료되진 않지만.... 화면 표시에 문제가 있었던 걸로 기억됩니다...
해결책이라고 해봐야 원본이미지가 너무크면 샘플링해서 사용하는 정도지요..
잘 해결되시길 바랍니다...
그나저나 오드엠이면... 뱅뱅사거리 맞나요? 저희회사랑 가깝네요 ㅋ




매니페스트 파일에 largeHeap="true" 속성 해보셨나요?