Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Andengine-使用TexturePacker Spritesheet时内存使用量增加_Android_Andengine_Game Engine_Texturepacker - Fatal编程技术网

Android Andengine-使用TexturePacker Spritesheet时内存使用量增加

Android Andengine-使用TexturePacker Spritesheet时内存使用量增加,android,andengine,game-engine,texturepacker,Android,Andengine,Game Engine,Texturepacker,我当时正在使用andengine为android平台开发一款游戏。 我过去经常按应用程序检查内存使用情况 这是使用spritesheets之前的内存使用情况 后来我了解了SpriteSheet和Andengine的纹理包装 我尝试在我的应用程序中使用它。我创建了一个包含整个游戏所需的所有图像的精灵表 当我加载它时,堆比前一个堆大 我假设使用SpriteSheet后堆会减少。 出了什么问题? 如何使用SPriteSheet和TexturePacker管理内存 软件使用: 织物包装机 安第因潜育

我当时正在使用andengine为android平台开发一款游戏。 我过去经常按应用程序检查内存使用情况

这是使用spritesheets之前的内存使用情况

后来我了解了SpriteSheet和Andengine的纹理包装

我尝试在我的应用程序中使用它。我创建了一个包含整个游戏所需的所有图像的精灵表

当我加载它时,堆比前一个堆大

我假设使用SpriteSheet后堆会减少。
出了什么问题?
如何使用SPriteSheet和TexturePacker管理内存

软件使用:

  • 织物包装机
  • 安第因潜育体2
  • 和发动机织物包装张力

  • [编辑] [已解决]

    总堆似乎不是一个更大的问题。 我终于控制了堆内存的总量

    我简单地创建了两个精灵表,一个用于实际的游戏资源,另一个用于菜单资源。我只加载当前需要的精灵表。在加载另一张spritesheet之前,我通常会卸载上一张spritesheet等等

    我希望这是一个正确的方法

    创建2张精灵表后,我的堆内存永远不会超过18MB:D


    您的堆总容量(可能)暂时更大,因为spritesheet是一大块数据,在发送到OpenGL纹理之前,必须在很短的时间内解码到堆内存中。您分配的堆几乎相同!所以这里没有泄漏或任何东西


    OpenGL纹理不计入java堆。

    您的堆总容量(可能)暂时更大,因为spritesheet是一大块数据,在发送到OpenGL纹理之前,必须在很短的时间内解码到堆内存中。您分配的堆几乎相同!所以这里没有泄漏或任何东西


    OpenGL纹理不计入java堆。

    这是否意味着如果分配的堆几乎相同,我就不必担心总堆?我发现我的游戏在三星Galaxy Ace、三星Galaxy Y等设备上崩溃。可能是bcoz的大堆内存?是的,这些设备价格便宜,最大堆可能较少。通过使用压缩纹理(而不是您当前可能正在使用的PNG),您可以使用它来限制加载纹理时的最大分配。这是否意味着如果分配的堆几乎相同,我就不必担心总堆?我发现我的游戏在三星Galaxy Ace、三星Galaxy Y等设备上崩溃。可能是bcoz的大堆内存?是的,这些设备价格便宜,最大堆可能较少。通过使用压缩纹理(而不是您当前可能正在使用的PNG),您可以使用它来限制加载纹理时的最大分配。