2015-01-15 6 views
1

내 질문은 기본적으로 이것이다 원인 :안드로이드 작은 PNG는 HIGH RAM 사용

어떻게 지구에 17킬로바이트 PNG 파일이 메모리가 60메가바이트에 스파이크가 발생할 수 있습니다?

특정 이미지가 화면에 표시 될 때마다 UI가 매우 저조한 것으로 나타났습니다.

나는 내 문제를 * .PNG 파일로 좁히고있다. 단지 17kb입니다. http://imgur.com/BGkfAnj

메모리 모니터에서 메모리 사용량은 WHOBPING 60MB였습니다.

안드로이드 2.3 에뮬레이터는 약 3MB, 반면 휴대 전화는 60MB로 늘어나고 "java.lang.OutOfMemory"오류로 인해 넥서스 6 (5.0.1) 에뮬레이터 강제 종료됩니다.

+1

어떻게 이미지를 설정하고 있습니까? XML 또는 코드를 통해 무엇입니까? –

+0

그것은 XML을 통해 이루어졌습니다. 나는 대답을 찾았지만, 당신의 반응에 감사드립니다! – XdrummerXboy

답변

4

간단한 PNG는 매우 잘 압축되므로 파일 크기가 잘못 될 수 있습니다.

이 비트 맵의 ​​크기는 1400x1400 픽셀입니다. 따라서 비트 맵에 압축을 푼 경우 7.8MB입니다. Nexus는 하드웨어 가속을 사용합니다. 2048x2048px 텍스처로이 이미지를 버퍼링 할 수 있습니다.이 텍스처는 또 다른 16.8MB입니다 (아마도 압축시 덜 유용 할 것입니다).

Nexus 6는 화면이 매우 고밀하므로 로딩 중에 이미지의 크기가 조정될 수 있습니다. 이는 다른 원인 일 수 있습니다.

+0

아, 포장 풀기 등이 있다는 것을 몰랐습니다. 고맙습니다! 나는 또한 그것에 대해이 게시물을 보았습니다 : http://stackoverflow.com/questions/13118005/android-background-image-memory-usage – XdrummerXboy