【发布时间】:2012-06-01 21:47:47
【问题描述】:
没找到这个。
Bitmaps 在 Android 中是如何存储在内存中的?更具体地说,我正在寻找的是,它是逐像素存储信息,还是使用任何类型的算法来减少存储像素的数量,例如存储单个像素和重复多少次的数字连续。我想知道这一点,因为我们无法将我们想要的所有图像都放入我们的游戏中。如果它确实使用某种算法,那么我们可以对原始图像做一些事情来减少内存消耗,对吧?
【问题讨论】:
没找到这个。
Bitmaps 在 Android 中是如何存储在内存中的?更具体地说,我正在寻找的是,它是逐像素存储信息,还是使用任何类型的算法来减少存储像素的数量,例如存储单个像素和重复多少次的数字连续。我想知道这一点,因为我们无法将我们想要的所有图像都放入我们的游戏中。如果它确实使用某种算法,那么我们可以对原始图像做一些事情来减少内存消耗,对吧?
【问题讨论】:
位图是压缩存储的,但如果不在某个点组装像素,您几乎无法显示。最好的选择可能是节省有限的 CPU 堆并将图像作为压缩的 OpenGL ES 纹理推送到 GPU。
补充: 看看Displaying Bitmaps Efficiently。如果有帮助,也可以recycle你的位图。
【讨论】:
虽然实现可能选择使用 RLE 将位图存储在内存中,但我非常怀疑是否会这样做,因为使用它们会效率低下。
在 Android 3.0 及更高版本上,您可以请求更大的堆。
【讨论】: