位图吞噬了比预期更多的内存

时间:2016-03-19 20:11:27

标签: java android bitmap

我正在为Android开发2D RPG游戏,并在加载地图时遇到了巨大的障碍。我使用Tiled创建地图和第三方开源TMX加载程序将地图加载到游戏中。

我的一张地图是100x100的瓷砖。每个磁贴是16x16像素,我使用RGB_565格式为我从TMX文件创建的位图。这应该为每个像素创建一个1600x1600位图,每个像素占4个字节,这意味着整个位图在内存中应该达到1600x1600x4字节(10MB)。但是,这不是使用内存的情况(由Runtime类中的方法报告)。加载地图后,使用的内存会从大约13-15MB上升到超过120MB。我无法看到这是怎么回事。

Bitmaps有那么多开销吗?

每当加载新地图时,旧地图都会被处理掉,并且从TMX构建的Bitmap将被回收。这似乎有时对内存使用没有影响。

我的实际问题是为什么计算出的10MB大小的位图消耗超过100MB的内存。

0 个答案:

没有答案