`
peng_joy
  • 浏览: 110003 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android Out Of Memory(OOM)内存溢出

 
阅读更多

这类情况时常出现在生成Bitmap的时候

在Android中: 
  1.一个进程的内存可以由2个部分组成:java 使用内存 ,C 使用内存 ,这两个内存的和必需小于16M,不然就会出现大家熟悉的OOM的情况。 

  2.一旦内存分配给Java后,以后这块内存即使释放后,也只能给Java的使用,这个估计跟java虚拟机里把内存分成好几块进行缓存的原因有关,反正C就别想用到这块的内存了,所以要是Java突然占用了一个大块内存: 

  C能使用的内存 = 16M - Java某一瞬间占用的最大内存。 

  而Bitmap的生成是经过过程malloc进行内存分配的,占用的是C的内存,这个也就说明了,上面所说的的4MBitmap无法生成的原因,因为在13M被Java用过后,剩下C能用的只有3M了。

0
2
分享到:
评论
2 楼 peng_joy 2012-11-01  
dingran 写道
1.delvik虚拟机占用的内存是c的还是java的呢?

2.如果是第一次分配一个大于3MB的bitmap的话,应该没问题,如果以后频繁分配的话很容易OOM,这又是为什么呢?

1、应该是c的
2、bitmap应该尽快释放,记得有个recyle方法,建议使用软引用或者弱引用
1 楼 dingran 2012-11-01  
1.delvik虚拟机占用的内存是c的还是java的呢?

2.如果是第一次分配一个大于3MB的bitmap的话,应该没问题,如果以后频繁分配的话很容易OOM,这又是为什么呢?

相关推荐

    Android 图片下载以及内存处理防止OOM内存溢出 源码

    在Android开发中,图片的加载和内存管理是一个关键问题,特别是考虑到防止因内存溢出(Out Of Memory,简称OOM)而导致应用崩溃。本教程将详细探讨如何在Android中有效地进行图片下载和内存处理,以避免OOM的发生。 ...

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY.pdf

    文档标题和描述中提到的“ANDROIDBITMAP内存限制OOM,OUTOFMEMORY”指的就是在处理位图(BITMAP)时超出了虚拟机(VM)的内存预算,导致系统抛出OutOfMemoryError异常。 根据给出的内容部分,我们可以推断出以下知识...

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY[文].pdf

    在Android开发中,我们经常会遇到内存管理的问题,特别是与Bitmap相关的内存溢出(Out Of Memory,简称OOM)问题。Bitmap对象是Android系统中用于处理图像数据的重要类,但由于其消耗大量的内存,不当使用可能导致...

    android 轻松避免内存溢出

    在Android开发中,内存管理是至关重要的,尤其是处理图片资源时,经常遇到内存溢出(Out Of Memory,简称OOM)的问题。本项目提供了一个在Android 1.6 SDK环境下编写的工具类,旨在帮助开发者有效地避免内存溢出,...

    android 图片下载 有效解决内存溢出问题

    在Android开发中,图片下载和显示是常见的操作,但如果不恰当处理,很容易引发内存溢出(Out of Memory,简称OOM)问题。内存溢出是指程序在申请内存时,没有足够的内存空间供其使用,导致程序崩溃。对于Android应用...

    Android 内存溢出问题

    然而,如果应用程序在短时间内分配大量内存,或者持有大量无法释放的对象引用,就可能导致内存溢出(Out Of Memory,OOM)。 例如,错误信息"02-04 21:46:08.703: ERROR/dalvikvm-heap(2429): 1920000-byte ...

    android解决加载图片内存溢出

    在Android开发中,图片加载是常见且关键的操作,但如果不恰当处理,很容易导致内存溢出(Out of Memory,简称OOM)问题。内存溢出不仅会影响应用的性能,降低用户体验,严重时甚至会导致应用崩溃。本篇文章将深入...

    Android避免内存溢出(Out of Memory)方法汇总

    在Android开发中,内存管理是至关重要的,尤其是避免内存溢出(Out of Memory,简称OOM)。内存溢出会导致应用程序崩溃,影响用户体验。本篇文章将详细阐述如何在Android中有效地防止内存溢出,主要包括理解不同类型...

    android双缓冲解决图片内存溢出的问题

    在Android开发中,处理大量的图片资源时,常常会遇到内存溢出(Out Of Memory,简称OOM)的问题。这是因为Android系统为每个应用分配的内存有限,当加载过多或过大的图片时,很容易超出这个限制,导致应用崩溃。为了...

    Android防止内存溢出浅析.zip

    在Android应用开发中,内存溢出(Out Of Memory,简称OOM)是一个常见的问题,它会导致应用崩溃,严重影响用户体验。理解并防止Android应用中的内存溢出是优化应用性能的关键环节。以下是对Android防止内存溢出的...

    针对Android应用中Gallery内存溢出的解决方案.pdf

    然而,随着应用程序功能的日益丰富,尤其是涉及到图像处理的应用,如何有效管理内存资源,避免内存溢出(Out Of Memory,简称OOM)成为了亟待解决的问题。在Android应用中,Gallery(画廊)组件被广泛用于展示和浏览...

    Android应用源码之防止内存溢出浅析.zip

    内存溢出(Out Of Memory,简称OOM)是Android开发者经常面临的问题,它会导致应用崩溃,严重影响用户体验。本资源"Android应用源码之防止内存溢出浅析"旨在深入探讨如何通过源码分析来避免这种问题。 一、Android...

    Android 内存溢出和内存泄漏的问题

    内存溢出 (OOM)是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如只申请了一个integer,但给它存了long才能存下的数,那就会出现内存溢出。 内存泄露 (memory leak)是指程序在申请内存...

    Android应用源码之防止内存溢出浅析-IT计算机-毕业设计.zip

    在Android应用开发中,内存管理是至关重要的一个环节,尤其是防止内存溢出(Out Of Memory,简称OOM)。本文将深入浅出地分析Android应用源码中如何预防内存溢出问题,帮助开发者提升应用性能和稳定性。 一、...

    android异步加载网络图片,双缓存内存加sd卡缓存 绝对不会出现内存溢出oom

    本文将深入探讨如何实现一个高效、安全的网络图片加载机制,结合双缓存策略,确保图片加载过程既快速又不会导致内存溢出(Out Of Memory, OOM)。 首先,我们要理解为什么需要异步加载。在Android中,如果在主线程...

Global site tag (gtag.js) - Google Analytics