Android Andengine-使用TexturePacker Spritesheet时内存使用量增加
我当时正在使用andengine为android平台开发一款游戏。 我过去经常按应用程序检查内存使用情况 这是使用spritesheets之前的内存使用情况 后来我了解了SpriteSheet和Andengine的纹理包装 我尝试在我的应用程序中使用它。我创建了一个包含整个游戏所需的所有图像的精灵表 当我加载它时,堆比前一个堆大 我假设使用SpriteSheet后堆会减少。Android Andengine-使用TexturePacker Spritesheet时内存使用量增加,android,andengine,game-engine,texturepacker,Android,Andengine,Game Engine,Texturepacker,我当时正在使用andengine为android平台开发一款游戏。 我过去经常按应用程序检查内存使用情况 这是使用spritesheets之前的内存使用情况 后来我了解了SpriteSheet和Andengine的纹理包装 我尝试在我的应用程序中使用它。我创建了一个包含整个游戏所需的所有图像的精灵表 当我加载它时,堆比前一个堆大 我假设使用SpriteSheet后堆会减少。 出了什么问题? 如何使用SPriteSheet和TexturePacker管理内存 软件使用: 织物包装机 安第因潜育
出了什么问题?
如何使用SPriteSheet和TexturePacker管理内存 软件使用:
[编辑] [已解决] 总堆似乎不是一个更大的问题。 我终于控制了堆内存的总量 我简单地创建了两个精灵表,一个用于实际的游戏资源,另一个用于菜单资源。我只加载当前需要的精灵表。在加载另一张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),您可以使用它来限制加载纹理时的最大分配。