OOM이 나오는 이유들중에
PNG파일을 BITMAP으로 변환 할때 그 과정에서 메모리를 많이 잡아먹는것
BITMAP을 다시 리사이즈할때도 메모리를 많이 잡아먹고.
BITMAP을 리사이클해서 다시 사용할때 다시 불러들이니깐 메모리를 많이 잡아먹는것
이 3가지 중 틀린 부분이랑
그외에 더 있는지요??
어짜피 이미지 파일은 화면에 뿌려지기 전에 메모리에 raw데이터로 존재하게 됩니다.
bitmap도 압축된 bitmap가 있고 압축되지 않은 상태의 bitmap가 있죠
둘 다 압축되지 않은 상태의 bitmap가된다고 보시면 되겠습니다.
png도 결국 화면에 뿌려지기 전에는 압축되지 않은 상태의 bitmap와 같은 데이터가 됩니다.
raw데이터의 형태는 디스플레이의 환경에 따라 달라지는데
예를 들어 만약 화면이 ARGB 32bit color이라면 어떤 파일 포멧이건
1픽셀당 4바이트씩 차지하는 데이터로 변경되어 메모리에 적제되고
이걸 화면에 뿌려주게되죠
파일 포멧은 단지 어떤 형태로 이미지 정보를 압축하냐의 차이입니다.
화면에는 결국 1픽셀당 정보가 있어야 뿌려줄 수 있는데
매번 화면에 1픽셀씩 정보 변환해서 뿌리면 효율이 안나니까요
아그렇군요 알겟습니다.
로그인 유지
어짜피 이미지 파일은 화면에 뿌려지기 전에 메모리에 raw데이터로 존재하게 됩니다.
bitmap도 압축된 bitmap가 있고 압축되지 않은 상태의 bitmap가 있죠
둘 다 압축되지 않은 상태의 bitmap가된다고 보시면 되겠습니다.
png도 결국 화면에 뿌려지기 전에는 압축되지 않은 상태의 bitmap와 같은 데이터가 됩니다.
raw데이터의 형태는 디스플레이의 환경에 따라 달라지는데
예를 들어 만약 화면이 ARGB 32bit color이라면 어떤 파일 포멧이건
1픽셀당 4바이트씩 차지하는 데이터로 변경되어 메모리에 적제되고
이걸 화면에 뿌려주게되죠
파일 포멧은 단지 어떤 형태로 이미지 정보를 압축하냐의 차이입니다.
화면에는 결국 1픽셀당 정보가 있어야 뿌려줄 수 있는데
매번 화면에 1픽셀씩 정보 변환해서 뿌리면 효율이 안나니까요