伙计们,我不认为这是重复的,也不是我如何避免OOM问题的其中之一。这是对知识的真正追求,所以请不要投反对票……
想象一下我有一个JPEG
像素500x500
。我将ARGB_8888
其加载为“ bad as it gets
”。
但是,我希望 Android 进行分配500x500x4 bytes = a little under 1MB
,查看堆转储,您会发现 Android 分配的内存要多得多,通常是5-10
大几倍。
您经常在这里看到有关OOMS的问题,其中堆栈跟踪显示 aheap request of say 15MB
并且它总是比仅保存图像字节所需的大得多。OP 通常会收到一些反对票,然后被关于使用更少内存(感谢 Romain!)和扩展的股票答案和评论轰炸。我认为这里有很多东西。
有人知道这是为什么吗?
如果没有明显的答案,如果有帮助,我会整理一个SSCCE。
PS。我认为JPEG与PNG等是无关紧要的,因为我们正在谈论支持位图的内存使用情况,它只是x乘以y乘以BPP - 还是我很慢?