Tag Archives: 闪退

贴图占用内存过大造成闪退的问题

最近做的小游戏,在后台开多几个程序的时候会发生闪退现象。设备是iPod touch4。经过反复测试发现是使用了3个1024×1024的大贴图导致内存占用过高引起的。经过一番google决定使用如下方法缓解:

  1. 在不明显损失画面效果的情况下尽量缩小贴图。
  2. 尽量将零散的贴图组成Sprite Sheet来使用。
  3. 在场景的init和dealloc方法中分别调用purgeCachedData来释放不使用的贴图缓存。

    之所以分开调用两次,是因为我使用了场景切换效果(CCTransitionXXX),有两个场景同时存在的情况。经过反复测试发现这样效果最好。

另外:

  • 使用removeUnusedSpriteFrames可以释放更多内容。
  • 使用dumpCachedTextureInfo可以查看缓存详情。

参考: