Android内存溢出的解决方法

来源:互联网 发布:软件方向毕业论文题目 编辑:程序博客网 时间:2024/06/12 21:58
1. 当项目中包含大量图片,或者图片过大
方法1:等比例缩小图片
代码:
BitmapFactory.Options options = new BitmapFactory.Options();  
options.inSampleSize = 4
方法2:对图片采用软引用,及时地进行recyle()操作
代码:
SoftReference<Bitmap> bitmap;  
bitmap = new SoftReference<Bitmap>(pBitmap);  
if(bitmap != null){  
if(bitmap.get() != null && !bitmap.get().isRecycled()){
      bitmap.get().recycle();  
    bitmap = null;
    }  
   }
方法3 : 对复杂的listview进行合理设计与编码(个人感觉这个靠谱点)1. 注意重用Adapter里面的convertView,以及holder机制的运用
上述方法尝试还未成功,可用 lazy loading data
代码:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {  
            v = mInflater.inflate(resource, parent, false);
         final int[] to = mTo;  
        final int count = to.length;
       final View[] holder = new View[count];  
           for (int i = 0; i < count; i++) {  
             holder[i] = v.findViewById(to[i]);
    }  
         v.setTag(holder);       } else {  
   }  
}
方法4 : 单个页面,横竖屏切换N次后 OOM
1. 看看页面布局当中有没有大的图片,比如背景图之类的。去除xml中相关设置,改在程序中设置背景图(放在onCreate()方法中):
代码:
Drawable bg = getResources().getDrawable(R.drawable.bg);
XXX.setBackgroundDrawable(rlAdDetailone_bg);  
在Activity destory时注意,bg.setCallback(null); 防止Activity得不到及时的释放。
2. 跟上面方法相似,直接把xml配置文件加载成view 再放到一个容器里,然后直接调用 this.setContentView(View view);避免xml的重复加载。

方法5:在页面切换时尽可能少地重复使用一些代码。比如:重复调用数据库,反复使用某些对象等等.....

方法6:Android堆内存也可以自己定义大小和优化Dalvik虚拟机的内存
代码:
private final static int CWJ_HEAP_SIZE= 6*1024*1024;  
private final static float TARGET_HEAP_UTILIZATION = 0.75f;   
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);  
VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子捅别的孩子眼睛了怎么办 眼睛不小心捅伤怎么办 我的爸爸是小偷怎么办 违停罚款忘记交怎么办 顺风车无人接单怎么办 来例假腰特别疼怎么办 把人撞死了全责怎么办 朝鲜与美合作对付中国怎么办 申请美国大学gpa不够怎么办 武装突袭3有地雷怎么办 辐射4狗肉跟丢了怎么办 洛奇英雄传死绑S怎么办 在老挝遇到坏人带枪怎么办 买了sd卡卡槽塞不下怎么办 现役军人家庭被邻居欺服怎么办 地铁买票买多了怎么办 免税店买的东西转机怎么办 绿能电动车坏了怎么办? 永久单车收不到验证码怎么办 24速山地车档乱了怎么办 新电瓶车被偷了怎么办 汽车前风挡玻璃砸出洞怎么办 凯迪拉克xt5钥匙掉了怎么办 凯迪拉克xt5媒体不好用怎么办 晒黄的白鞋怎么办 白鞋子被晒黄了怎么办? 耐克空军一号白色发黄怎么办 空军一号破皮了怎么办 匡威鞋帆布破了怎么办 脚腕起疙瘩很痒怎么办 跑步后脚踝微疼怎么办 跑步跑得脚疼怎么办 nike air 鞋头脱胶怎么办 耐克空军一号磨脚怎么办 白鞋刷完变黄了怎么办 乔丹气垫坏了怎么办 气垫鞋气垫坏了怎么办 建行u盾忘记密码怎么办 工商银行u盾忘记密码怎么办 民生银行不给u盾怎么办 银行不给开u盾怎么办