什么是OOM?

     OOM是out of memory的简称,也称内存溢出。

     

什么样的场景下会出现OOM?

       1、在对图片进行内存缓存处理的时候就会出现OOM异常,可能在集合中存储几十张图片还好,如果需要存储几百甚至上千的图片就会出现内存溢出的情况,不管你的手机配置再高再好也会出现此种情况。比如说你的手机可能有1G的运行内存,Android并不会将1G的内存全部分配给你,不管手机的运行内存有多大,Android只会给每个App分配16M或者32M的空间,比如每张图片100kb,16M也只能加载160张左右的照片,要知道实际的App课远不止这些图片的,一旦超出16M就内存溢出了,

      

//获取Android系统给App分配的运行内存, 返回的数据以B为单位
long maxMemory = Runtime.getRuntime().maxMemory();
Log.i(TAG,"maxMemory:"+maxMemory);
//maxMemory:402653184

 

如何解决内存溢出?