在Android开发中,Bitmap对象是用于处理图像的主要工具,但如果不妥善管理,它可能会引发一个常见的问题:Out of Memory(OOM)错误。特别是在处理大尺寸图片时,由于内存限制,系统可能无法分配足够的内存,从而导致应用崩溃。"处理android bitmap oom 2.0版本关闭了硬件加速"这一主题,关注的是如何在Android 2.0版本及其后续版本中避免Bitmap导致的内存溢出,以及硬件加速在这个过程中的角色。 理解硬件加速的概念至关重要。在Android中,硬件加速是指利用设备GPU(图形处理器)来执行部分或全部的UI渲染工作,以提高性能和流畅度。然而,当处理大尺寸Bitmap时,硬件加速可能会增加内存消耗,因为GPU会将Bitmap数据复制到其内存中,这可能导致OOM异常。 为了解决这个问题,开发者可以采取以下策略: 1. **调整Bitmap的大小**:通过减小Bitmap的宽度和高度,可以显著降低内存占用。可以使用`Bitmap.createScaledBitmap()`方法根据需要缩放图片。 2. **使用低质量格式**:选择ARGB_8888之外的格式,如RGB_565,可以减少每个像素的位数,从而降低内存占用。 3. **延迟加载**:只在需要显示图片时才加载Bitmap,使用懒加载机制可以防止不必要的内存占用。 4. **使用BitmapFactory.Options**:在加载Bitmap前,可以通过设置`inJustDecodeBounds`为true,获取图片原始尺寸,然后计算合适的缩放比例,再加载图片。 5. **使用Purgeable Bitmap**:在Android 3.0及以上版本,可以使用`setMutable(false)`使Bitmap可回收,以便系统在内存紧张时释放它。 6. **避免在内存中保存大量Bitmap**:及时释放不再使用的Bitmap,使用`recycle()`方法回收,但要注意,一旦回收,不能再对Bitmap进行任何操作。 7. **Android 2.0版本关闭硬件加速**:在特定情况下,关闭硬件加速可以防止额外的内存消耗。使用`View.setLayerType(View.LAYER_TYPE_SOFTWARE, null)`可以使指定视图不使用硬件加速,但这可能会降低性能。 8. **利用MemoryCache和DiskCache**:通过缓存机制,将Bitmap存储在内存或磁盘中,避免频繁加载大图。 9. **使用 Fresco 或 Glide 图片加载库**:这些库提供了高效的图片加载、缓存和内存管理机制,可以有效地防止OOM。 处理Android Bitmap OOM问题需要综合运用多种技术,包括调整图片大小、选择合适的编码格式、合理加载和释放Bitmap,以及利用库和缓存机制。在Android 2.0版本中关闭硬件加速是一个可行的解决方案,但应权衡性能和内存使用。理解并灵活运用这些方法,可以大大提高应用的稳定性和用户体验。




















































































































































- 1

- 小小大大张2015-11-12没有解决问题 啊
- fwf2r232014-03-13不行 还是出现问题
- fang16382015-02-10哎,还是不行,郁闷。
- cs199110215212013-06-06还是会出现oom 郁闷死啊

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 输配电及用电工程的自动化运行研究.docx
- VB+SQL学生信息管理系统.doc
- 大数据时代高职院校智能化教学改革的研究.docx
- 浅论计算机的网络系统维护.docx
- 湖北理工学院基于PLC的五路抢答器的设计.doc
- 工程项目管理存在的问题及对策.docx
- HPLC法测定碳酸饮料中的维生素C.docx
- 基于51单片机的温度警报器的方案设计书单片机课程方案设计书.doc
- 联想OpenStack云战略-高健.pdf
- 中小城市各心理服务位点发展现状及互联网+解决方案.docx
- 基于物联网技术的电子商务物流发展问题探讨.docx
- 中学生阅读现状及信息化教学策略.docx
- 试述电子信息工程中的计算机网络技术.docx
- 生产检验用计算机系统验证管理规定.doc
- 基于云计算的在线学习平台研究与设计.docx
- MCGS和PLC机械手控制系统设计机电一体化技术专业大学设计大学设计.doc


