2013-04-01 1 views
1

andengine을 사용하여 Android 플랫폼 용 게임을 개발하고있었습니다. 및 i는 응용 프로그램별로 메모리 사용을 정기적으로 확인하는 데 사용됩니다. 내가 SpriteSheet 및 Andengine의 TexturePackerExtensionAndengine - TexturePacker 스프라이트 시트 사용시 메모리 사용량 증가

내 응용 프로그램에서 사용하려고에 대해 알고 온에

나중에 사용 spritesheets enter image description here

전에 메모리 사용했다. 게임 전체에 필요한 모든 이미지가 포함 된 단일 스프라이트 시트를 만들었습니다.

그리고로드 할 때 이전 힙보다 힙이 증가했습니다.

enter image description here

내가 가정 한 힙 SpriteSheet 사용 후 감소한다.
무엇이 잘못 되었나요?
SPriteSheet 및 TexturePackers를 사용하여 메모리를 관리하려면 어떻게해야합니까? 사용

소프트웨어 : CodeANdWeb.com

  • AndEngine GLES2
  • Andengine-TexturePackerExtension의

    1. TexturePacker.

    [편집] 은 [SOLVED]

    총 힙은 더 큰 문제가 될 것 같습니다하지 않습니다. 마침내 총 힙 메모리를 제어 할 수있었습니다.

    나는 실제 게임 자원을 위해 2 개의 스프라이트 시트 1을 만들었고 다른 하나는 메뉴 자원을 위해 만들어졌다. 현재 필요한 스프라이트 시트 만로드합니다. 다른 스프레드 시트를로드하기 전에 이전 스프라이트 시트를 언로드하는 데 사용되었습니다.

    이것이 올바른 접근 방법이되기를 바랍니다.

    내 힙 메모리가 결코 avobe 약 18메가바이트 간다 2 spritesheets을 만든 후 : D를

    enter image description here

  • 답변

    1

    귀하의 총 힙 용량이었다 spritesheet가 있었다의 데이터를 하나의 큰 덩어리이기 때문에 (아마) 일시적으로 더 큰 OpenGL 텍스처로 전송되기 전에 매우 짧은 시간 동안 힙 메모리로 디코딩 될 수 있습니다. 할당 된 힙은 거의 동일합니다! 그래서 아무 누설이나 여기 아무것도!

    OpenGL 텍스처는 Java 힙에 포함되지 않습니다.

    +0

    할당 된 힙이 거의 같은 경우 전체 힙에 대해 신경 쓸 필요가 없다는 뜻입니까? 삼성 갤럭시 에이스 (Samsung Galaxy Ace), 삼성 갤럭시 Y (Samsung Galaxy Y)와 같은 기기에서 게임이 다운되는 것을 발견했습니다. 큰 힙 메모리가 bcoz일까요? –

    +0

    예, 해당 장치는 값이 싼 끝에 있으며 아마도 최대 힙이 적습니다. [PVR (CCZ/GZ)] (https://github.com/nicolasgramlich/AndEngine/blob/GLES2-AnchorCenter/src/org/andengine/opengl/texture/compressed/pvr/PVRTexture)를 사용하십시오.java) 압축 텍스처 (현재 사용하고있는 PNG 대신)를 사용하는 경우이 [PixelBufferStrategy] (https://github.com/nicolasgramlich/AndEngine/blob/GLES2-AnchorCenter/src/org/andengine/opengl)를 사용할 수 있습니다. /texture/compressed/pvr/pixelbufferstrategy/SmartPVRTexturePixelBufferStrategy.java) 텍스처를로드 할 때 최대 할당을 제한 할 수 있습니다. –