2012-06-12 2 views
0

iPhone에서 안드로이드로 타로 포츈 카드 읽기 게임을 포팅하려고합니다. 나는 약 19 메가 바이트를 차지했던 모든 비 스케일 된 이미지를 넣었다. 나는 안드로이드가 보통 512 메가 램을 가지고 있다는 가정하에 있었습니까? 전체 크기가 약 20MB 인 경우 왜 앱이로드되지 않습니까 ?? 나는 이미지를 축소했기 때문에 메모리가 약 8MB로 떨어졌고 잘로드되었습니다.안드로이드에서 메모리 관리 - 에뮬레이터에서 메모리가 충분하지 않아서 애플리케이션이로드되지 않습니다.

아무도 메모리 관리가 어떻게 작동하는지 또는 좋은 연결을 알고 있습니까? 몇 가지 사운드 효과와 더 많은 그래픽을 사용하겠습니다. APK가로드되지 않을까 걱정됩니다.

답변

1

Android에서는 각 앱에 작동하기 위해 제한된 메모리가 제공됩니다. 일반적으로 16MB에서 24MB로 다양하며 일반적으로 구형 장치에서는 낮습니다. 이것을 피하기 위해, 게임은 OpenGL 텍스처를 사용합니다. IIRC는 이러한 메모리 제한에 포함되지 않기 때문입니다. 또한 NDK에서 메모리를 할당하면이 제한을 피할 수 있지만 그리 편리하지는 않습니다.

태그에 android : largeHeap = "true"를 추가하여 더 많은 양의 메모리를 할당 할 수 있지만 AFAIK 3.X 이상에서만 작동합니다.

+0

안녕하세요, 감사합니다. 18MB가 메모리 제한 내에 있습니다. –

0

우선 이미지가 디스크에서 약간의 공간을 차지하므로 표시된 동일한 양의 메모리를 사용한다는 의미는 아닙니다. 이미지의 메모리 양을 계산하려면 (약) H x W x 4을 실행하십시오. 그런 다음 화면 크기에 따라 달라지는 android의 제한이 있습니다 (16MB 이상, 그 이상은 아닙니다). 일반적으로 전체 화면 이미지는 거의 없습니다. 또한 이미지가 휴대 전화 화면보다 훨씬 크기 때문에 메모리를 적게 사용하도록 이미지를 다운 샘플링해야합니다. 그 주제를 다루는 많은 정보가 여기에 있습니다.

+0

안녕하세요. 의견을 보내 주셔서 감사합니다. 예를 들어 크기를 줄였습니다. 문제가 해결되었지만 다른 버전에서는 이미지 크기를 줄이지 않겠습니다. . 그것은 괜찮아 걱정하지만 네, 아이폰에 그들을 다운 사이징해야한다. –

관련 문제