android - 在android中回收位图

标签 android bitmap

什么时候应该在 android 中处理位图内存管理或回收位图?

例如,在 android 中创建位图的方法很少,如下所示

 Bitmap.createBitmap
 Bitmap.createScaledBitmap
 BitmapFactory

但是在android为位图分配内存的时候,必须要清除掉,这样在以后的应用中才不会遇到内存不足的错误问题

最佳答案

在 Android 3.0 之前的版本中,位图是在 VM 之外分配的。 Android 在 Bitmap 的 finalize() 方法中取回此内存。您可以通过调用 Bitmap.recycle() 而不是等待 GC 对它们调用 finalize() 让 Android 更快地回收内存。

只有在创建和丢弃大量位图时,这才是真正的问题。也就是说,如果您分配内存的速度更快,那么 GC 可以清理留下的垃圾,此时您会收到 OutOfMemoryError。

在 android 3.0 及更高版本中,Bitmap 内存在 VM 内部分配,因此无需调用 finalize() 即可回收 Bitmap 内存。

关于android - 在android中回收位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4578865/

相关文章:

c++ - 有没有办法在不复制所有像素的情况下将现有的像素数组转换为 BITMAP?

android - 如何在缩放位图上获取像素颜色值?

android - 获取当前的蓝牙可发现性超时

android - 获取连接的智能 watch 的电池电量

android - 将 View 转换为位图

java - Last.fm 不会返回艺术家图像

android - 隐藏/显示不同 fragment 的操作栏选项菜单项

android - 如何使用三个选项自定义切换按钮android

java - 不能在静态上下文中使用 'this'

java - 将许多位图上传到服务器的最佳方法