비트맵으로 이미지 생성하는거 때문에 고민중이엿는데,
로그캣을 보다보니 비트맵으로 이미지(164KB 짜리) 생성할때마다 freeMemory()로 확인하는 메모리는 변동이 없구요, external 이라는 뜨는 메모리가 늘어나더라구요,,
헌데 이게 계속 생성해주다보면 25MB 즈음 넘어가니까 에러를 뿜어내데요,,
제 넥스로 로그띄어보니 maxMemory() 32MB , totalMemory() 5MB .
maxMemory가 프로세스당 최대로 쓸수 있는 메모리 인거 같고,
totalMemory 5MB가 프로세스당 기본으로 잡히는 힙 영역이라 보면,
maxMemory 32MB에서 5MB를 빼면 남아 있는건 27MB 입니다.
위에서 비트맵 불러올때 마다 external 이라고 할당되는 게 25MB 즈음 넘어가면 에러난다고 햇으니 ,
이때가 남은 27MB 영역을 넘어서는 때인거 같습니다 ,, 고로 메모리 에러 부왘
(164KB짤 이미지 비트맵으로 생성할때마다 2메가 정도가 할당되더라구요).
이미지 소스 용량으로 환산 해보면 2메가 정도밖에 안되는데
안드로이드는 메모리할당을 그거밖에 못해주겟다네요 ㅠㅠ
비트맵 사용도중에 문제가 생겨서 메모리 관련된 내용에 관해서 이래저래 공부도 해봤는데,
이것 저것 모은 답변이 안드로이드의 힙메모리 관련되어서 처리할 수 있는 방법이 많지 않더라구요.
특히나 비트맵 같은 경우에는 달빅 힙이 아닌 네이티비 힙을 사용한다고 하던데(정확히 문서는 보지 못했음)
저 같은 경우에는 비트맵을 비트맵 팩토리를 사용하지 않고 Uri 방식으로 변형해서 비트맵을 로딩하도록 처리 했습니다.
해당 이미지 뷰에서 Uri 방식을 이용하니까 힙 메모리 에러는 잡은거 같기도 한데 완벽하진 않더라구요.
근데 Uri 방식을 사용하면 문제점이 갤러리에 이미지가 남는다는..ㅎㄷㄷ
음...좋은 정보 감사드립니다.
비트맵 때문에 저 또한 골치거리인데...;
지식이 짧다 보니 해결 방안이 보이지가 안네요 ㅜ.ㅜ