好熟悉的感觉,以前有见到这类问题,但不是OOM,很久很久之前的

解决方案 »

  1.   

    引起OOM一程序同一时间加载的资源占用的内存超过了系统分配给你这个程序的内在引起的,android中出现OOM一般是加载图片引起的。如果知道程序中某个点共时加载资源较多,可在这个类中写个方法在里面try-catch下运行时异常,加载此时所有需要的资源,在处理catch时就返回bool值是否OOM... , 如果是分散加载资源,就要写个资源占用内存管理类,在第个加载资源的地方都先Call管理类加载资源,写法和前面差不多返回bool值,如果没有OOM就可以放心的处理下面的工作。另外要说明的是OOM是运行时引起的,和扫描代码无关,扫描代码有无错误是编译器做的事,android里有很多开源的处理图片加载的框架,解决因图片加载导致的OOM问题,可以在网上找下!
      

  2.   

    我想请问下,OOM运行时引起我就知道它错在哪里还需要检测吗??
      

  3.   

    不知版主为何有这样的需求。这个真的能在运行之前检测吗?一般项目做完之后在测试时伪造点数据做个压力测试就完了。最简单的例子:
    BitmapFactory.decodeFile(filepath)   oom的概率由这个文件来决定吧?不传文件就啥也没有怎么检测?还是我没明白lz的意思?
      

  4.   

    有木有什么catch机制,需求方蛋疼的来这样一出,,,
      

  5.   


    唉,error啊,运行前检测是没可能了。连运行时一般都应该检测的。。
      

  6.   


    唉,error啊,运行前检测是没可能了。连运行时一般都应该检测的。。需求方偏说之前的实施商有做过,,,
      

  7.   


    唉,error啊,运行前检测是没可能了。连运行时一般都应该检测的。。需求方偏说之前的实施商有做过,,,那没办法,你要想尽一切办法糊弄了。
      

  8.   


    OOM是属于运行时异常,只能在运行时处理,捕获到OOM的发生再进行有针对性的处理不使程序闪退或运行异常不就达到目的了吗!
      

  9.   

    OOM一般都是运行的错误,怎么可能在运行前就能够检测出,除非某种工具能够通过代码分析出所有的运行时的内存情况,这几乎是不可能的。