Android中内存的位图的可绘制优势

2cu*_*ech 11 android memory-management bitmap drawable

此问题与以下问题中的答案相关联:

删除位图时出错[Android]

在内存解除分配方面,在Android中使用Drawable over Bitmap是否有任何优势?

我正在看Romain Guy项目Shelves,他使用SoftReference进行图像缓存,但是当SoftReference自动回收Bitmap的内存时,我无法搜索解除分配这些Drawables的代码.据我所知,必须在Bitmap上显式调用.recycle()才能对其进行解除分配.

小智 10

根据我的理解,如果您不需要进行太多的图像处理,则位图通常会提高性能.但是,当我不手动回收它时,我遇到了内存泄漏.我的解决方案是编写一个类来帮助我管理我的图像,这提供了一种简单的方法来回收我的应用程序中某些点的所有位图.它还提供了一种简单的方法来重用已经加载的资源(包括Drawables).


hac*_*bod 9

您不需要调用Bitmap.reycle().这将在终结器中完成.在终结器中执行它意味着分配将被延迟直到终结器运行,因此在可能的情况下直接调用recycle()可以帮助进行内存管理.

  • 您可能需要在调用错误之前检查用户配置文件. (8认同)
  • @AustynMahoney专家也可能是错的.听从专家的建议,但不要虔诚地遵循它."检查用户配置文件"远不如证据重要.没有任何人提供证据或链接.无论如何,来自hackbod的好答案. (3认同)
  • 这不仅仅是一位专家......她可能写了我们在这里谈论的Android代码. (3认同)