1. 이미지가 사용하는 메모리 크기는 JPG 파일크기보다는 이미지의 해상도와 관련이 있습니다.
요즘 나오는 디바이스의 카메라 해상도가 보통 5M픽셀입니다. 2592x1944네요.
이런 이미지라면 2592x1944x4=19MB 의 메모리를 사용합니다. (ARGB_8888로 열었을 경우)
보통 요즘 디바이스의 힙 메모리는 보통 64~96MB입니다. 카메라로 찍은 사진 3~4장 밖에 못엽니다. 이 점 감안하셔서 sample size를 줄이던가하는 방식으로 메모리 사용량을 최소화 하세요.
2. 이제 비트맵의 recycle()은 잊으셔도 됩니다. 진저브레드 이전이야 recycle()을 부름과 동시에 pixel memory해제 효과라도 있었지만(진저브레드 이전이라도 recycle() 안불러도 비트맵 자바 객체가 GC될 때 어짜피 recycle()됩니다) 허니콤 이상부터는 바로 해제도 안됩니다. 픽셀메모리도 힙 영역으로 옮겨왔기 때문입니다. 이제 비트맵에 대해 주의하실 점은 메모리 릭이 안나도록 하는 것 정도입니다. 불필요한 비트맵 레퍼런스가 남아있지 않도록 하세요.