android内存代码,Android内存优化的几种代码处理

以下为Androi内存优化的几种代码处理,示例代码,仅供参考:

?1. 生成Bitmap:

InputStream is =this.getResources().openRawResource(R.drawable.pic1);

BitmapFactory.Optionsoptions=newBitmapFactory.Options();

options.inJustDecodeBounds= false;

options.inSampleSize= 10;   //width,hight设为原来的十分一

Bitmap btp =BitmapFactory.decodeStream(is,null,options);

2.回收Bitmap:

if(!bmp.isRecycle() ){

bmp.recycle()   //回收图片所占的内存

system.gc()  //提醒系统及时回收

}

?调用recycle(),会开启一个线程去处理,具体什么时候回收只有系统知道。(属于建议 JVM 进行垃圾回收)

?这个就是为什么我们有的地方调用了它,那个地方还是会报oom的原因。

?但是有总归比没有好,它可以有效减少oom的概率。

回收资源

(1)//用来存放图片的缓存

HashMapbitmapCache = new HashMap();

//如果没有图片,或者已经存在

if(bitmapCache.isEmpty() || !AppConst.bitmapCache.containsKey(position)){

bitmapCache.put(position,bm);

}

(2)定义FreeBitmap函数,在activity结束的时候,调用FreeBitmap函数,    回收map中的资源

private void FreeBitmap(HashMap cache){

if(cache.isEmpty()){

return;

}

for(Bitmap bitmap:cache.values()){

if(bitmap != null && !bitmap.isRecycled()){

bitmap.recycle();

}

}

cache.clear();

}

3.手动干预堆内存:

(1)增强程序堆内存的处理效率:

开发一些大型游戏或耗资源的应用时可考虑手动干涉GC处理,如程序onCreate时调用VMRuntime.getRuntime().setTargetHeapUtilization(0.75f);

(2)强行设置APP最小内存大小:

VMRuntime.getRuntime().setMinimumHeapSize(6* 1024* 1024); //设置最小heap内存为6MB大小

原文:http://blog.csdn.net/berber78/article/details/41979773

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值