반응형
PC의 응용프로그램을 개발하다가 안드로이드 앱을 개발하게 되는 케이스들이 많을 거라고 생각합니다. 저 역시 그런 종류의 사람입니다. PC에서는 메모리 자원이 많아서 대부분의 자료를 메모리에 할당하여 사용합니다. 속도도 더 빠르겠죠.. 안드로이드 앱도 그렇게 코드를 작성해버렸네요. 그래서 결국 OutOfMemory라는 철천지 원수를 만나게 됐습니다.
대략적인 구조는 웹으로부터 XML 데이터를 가져오고, DOM파서로 데이터를 파싱해옵니다. 그리고 하나의 일치된 타입으로 데이터를 변환하여 저장하지요. 여기서 DOM파서와 변환된 데이터 이 두개가 한순간에는 동시에 존재하면서 많은 메모리를 차지하는 것 같더군요. 그리고 무엇보다도 Bitmap을 사용하고 있었는데 메모리 할당이 제대로 되지 않고 있었습니다. 개발 하던 앱의 종류가 AppWidget 이였습니다. 이 AppWidget에는 ImageView도 있었기 때문에 웹에 있는 이미지를 Bitmap으로 생성해서 할당을 했었죠. 그리고 무심코 recycle()을 하지 않고 있었습니다. 이미지의 크기가 작아서 몰랐지만, 차곡차곡 쌓여서 저의 목을 조르고 있었죠.
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] 특정 App의 Main Activity 실행하기 (0) | 2012.01.10 |
---|---|
[안드로이드] 안드로이드 프로파일링 4가지 방법 (Android Profiling) (0) | 2011.12.28 |
[안드로이드] adb를 사용하여 app 실행하기 (0) | 2011.12.22 |
안드로이드의 Touch Event 디스패치 단계 (0) | 2011.12.13 |
[안드로이드] HttpClient 에 Timeout 설정하기 (0) | 2011.10.25 |
[Android 문서번역] Avoiding Memory Leaks (메모리 누수를 피하는 방법) (0) | 2011.10.23 |
[안드로이드] 시스템 분석을 위한 쉘 명령어 (0) | 2011.10.21 |
안드로이드 Cache 파일 삭제하기 (0) | 2011.10.20 |
TextView - 문자열 다루는 방법 (spannable) (1) | 2011.10.04 |
[자바] 자바 정규표현식(Regular Expression) (2) | 2011.09.29 |