마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

아웃오브메모리 웃긴 현상

0 추천
웃긴 현상이 있습니다.

 

테스트폰은 갤2와 갤노트2가 있습니다.

 

앱 특성이 화보나 이미지를 많이 보여주어 Bitmap객체를 많이 사용하는 앱입니다.

 

갤노트2에서는 툭하면 아웃오브메모리로 뻗어버리는데

 

갤럭시S2에서는 전혀 뻗지를 않습니다;;

 

무슨 현상일까요;;

 

이상합니다.
갸아악 (21,260 포인트) 님이 2013년 5월 13일 질문

3개의 답변

0 추천

껄끄러운 문제를 만나신듯 ...

이런 주제 관련해서 칸드로이드 컨퍼런스에서 다룬적이 있습니다.

 

세션5의 자료를 참조해 보시는 것도 좋을듯 합니다.

 

http://www.kandroid.org/board/board.php?board=conference&command=body&no=88

 

objects (180 포인트) 님이 2013년 5월 13일 답변
0 추천
각 디바이스의 힙영역 차이 때문입니다.

갤토느가 힙영역이 적게 잡혀있습니다.

타겟이 2.3 이상이라면 매니페스트 어플리케이션에 Large Heap 옵션을 사용하면 뻗지는 않을 겁니다.

속도문제만 아니면 이미지 리사이징 하시는게 제일 안전합니다.
익명사용자 님이 2013년 5월 13일 답변
0 추천
몇분들이 말씀하셨듯이 각 디바이스의 힙사이즈의 차이때문입니다.

 

비트멥을 많이 다루는 앱을 만들때는 메모리를 아까기 위해 두가지 방법을 동시에 동원해야 합니다.

1) 우선 특정 비트멥이 더이상 필요없을때는 gc가 메모리를 회수할때까지 기다리는것보다 recycle() 을 불러줘서 최대한 빨리 메모리를 풀어줘야합니다. 한번 recycle을 부른 비트맵은 다시 decode하기 전에는 사용할수없으니 신중히 생각해봐야합니다.

 

2) 비트멥을 decode할때 필요한 사이즈에 맞춥니다. 예를 들어 32 x 32 짜리 섬네일에 사용할 비트멥을 800x800 으로 디코딩 해서 메모리를 낭비할 필요는 없겠죠.
엥꼬 (1,170 포인트) 님이 2013년 5월 13일 답변
...