假设我在一个位图对象中加载了一个图像
Bitmap myBitmap = BitmapFactory.decodeFile(myFile);
Run Code Online (Sandbox Code Playgroud)
现在,如果我加载另一个位图,会发生什么
myBitmap = BitmapFactory.decodeFile(myFile2);
Run Code Online (Sandbox Code Playgroud)
第一个myBitmap会发生什么?它是否收集垃圾或者我必须在加载另一个位图之前手动垃圾收集它,例如. myBitmap.recycle()?
此外,是否有更好的方法来加载大图像并在途中回收时一个接一个地显示它们?
很多帖子都谈到了Android堆大小,到目前为止我发现的最大堆大小的唯一常见的事情是它至少有16MB,但这是自API 3以来的限制.对于使用更多内存,人们会建议使用NDK或任何超出"正常"Android开发的东西.
是否有任何Android版本要求设备具有更大的堆大小,以便我可以开始假设更大的那个并停止在内存上如此便宜?
在清单中是否还要求大堆的标志(来自API 11 - 蜂窝),或者是一个模糊的请求,设备甚至可能忽略它?
多年来,Android硬件已经有了很大的改进,但我们仍然需要在内存上如此便宜,即使设备现在有超过1GB的内存.奇怪的是,我们不能要求操作系统为我们提供特定数量的堆大小,并承诺我们不会再使用它了.