位置: 编程技术 - 正文

android防止内存溢出浅析(一)(怎样关闭android系统的内存不足的系统通知)

编辑:rootadmin
做android游戏开发有一段时间了,对于开发中遇到额OutOfMemory 异常真的是很头疼,今天就在此总结下。游戏开发中遇到的内存溢出基本上都是出现在加载Bitmap的时候 ,原因是Bitmap实在是太占内存了,尤其是对于高分辨率的的图片一定要小心使用了。下面就罗列出三点解决使用Bitmap时出现的内存溢出问题的方案:一.及时的销毁:虽然,系统能够确认Bitmap分配的内存最终会被销毁,但是由于它占用的内存过多,所以很可能会超过java堆的限制。因此,在用完Bitmap时,要及时的recycle掉。recycle并不能确定立即就会将Bitmap释放掉,但是会给虚拟机一个暗示:“该图片可以释放了”。二. 设置一定的采样率:有时候,我们要显示的区域很小,没有必要将整个图片都加载出来,而只需要记载一个缩小过的图片,这时候可以设置一定的采样率,那么就可以大大减小占用的内存。如下面的代码:private ImageView preview; BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri), null, options); preview.setImageBitmap(bitmap);三、巧妙的运用软引用(SoftRefrence)有些时候,我们使用Bitmap后没有保留对它的引用,因此就无法调用Recycle函数。这时候巧妙的运用软引用,可以使Bitmap在内存快不足时得到有效的释放。如下例:private class MyAdapter extends BaseAdapter { private ArrayList mBitmapRefs = new ArrayList(); private ArrayList mValues; private Context mContext; private LayoutInflater mInflater; MyAdapter(Context context, ArrayList values) { mContext = context; mValues = values; mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() { return mValues.size(); } public Object getItem(int i) { return mValues.get(i); } public long getItemId(int i) { return i; } public View getView(int i, View view, ViewGroup viewGroup) { View newView = null; if(view != null) { newView = view; } else { newView =(View)mInflater.inflate(R.layout.image_view, false); } Bitmap bitmap = BitmapFactory.decodeFile(mValues.get(i).fileName); mBitmapRefs.add(new SoftReference(bitmap)); //此处加入ArrayList ((ImageView)newView).setImageBitmap(bitmap); return newView; } }

推荐整理分享android防止内存溢出浅析(一)(怎样关闭android系统的内存不足的系统通知),希望有所帮助,仅作参考,欢迎阅读内容。

android防止内存溢出浅析(一)(怎样关闭android系统的内存不足的系统通知)

文章相关热门搜索词:防止内存dump,安卓内存防封教程,安卓内存防封教程,怎样防止手机内存过快损失,怎样关闭android系统的内存不足的系统通知,安卓内存限制,怎样关闭android系统的内存不足的系统通知,安卓避免内存泄露,内容如对您有帮助,希望把文章链接给更多的朋友!

使用irrlicht开发3D移动游戏 本文工作在Ubuntu下用命令行和Vim完成。我的笔记本很旧了,用的是bit系统。使用了NativeActivity,完全用c代码开发。使用了c的特性,主要是智能指针,

CSDN精选Android开发博客 原文地址:

不错的金庸人物考考你android游戏源码 这是刚刚在源码天堂上看到的一款不错的金庸人物考考你android游戏源码,分享给大家学习一下吧。1、有关金庸原著小说的问答题。2、题目多为金庸qq群

标签: 怎样关闭android系统的内存不足的系统通知

本文链接地址:https://www.jiuchutong.com/biancheng/371167.html 转载请保留说明!

上一篇:android游戏开发备忘录(Android游戏开发入门)

下一篇:不错的金庸人物考考你android游戏源码(金庸笔下十大最受欢迎人物)

  • 汽车增值税是企业交给国家的税
  • 劳务费用 税率
  • 注册资本 投资比例
  • 通用发票
  • 企业收到银行汇票退回的多余款项
  • 企业年末要写财务报告吗
  • 其他应收款利息收入会计分录怎么写
  • 自然人税收系统生产经营怎么申报
  • 深圳增值税发票选择确认平台使用
  • 出售使用过的固定资产
  • 合法有效的凭证
  • 政策性搬迁损失赔偿标准
  • 企业期货投资收益税务案例
  • 公允价值变动损益会计处理
  • 固定资产抵扣期限
  • 营改增后租金收入交什么税
  • 2018工资个税税率表
  • 小微企业所得税优惠政策最新2022
  • 退休人员再任职个人所得税
  • 基本账户代发代扣怎么操作
  • 跨年补交企业所得税
  • 普通发票税收
  • 工资年终奖金扣多少税
  • 生产成本属于什么会计要素
  • 银行流水账单怎么查
  • 不是公司员工可以买原始股吗
  • 发票专用章是个人
  • 个人独资企业怎么取钱
  • 增值税专用发票有几联?
  • php防止再次刷新
  • win101709密钥
  • macwifi配置
  • 非盈利组织稳定吗
  • wirecut.exe
  • 利息收入增值税确认时点
  • php图片大小设置
  • uniapp按钮
  • yii框架文档
  • js中...的用法
  • cnn数据集
  • 建筑企业预缴所得税款税率
  • 公司开一般户经办人是会计还是出纳好
  • python中except用法
  • 小微企业如何升级一般纳税人
  • mysql用户权限详解
  • 个人所得税专项附加扣除2023
  • sqlserver分布式事务
  • 土增清算后再销售
  • 业委会究竟在小区起什么作用
  • 企业增值税的征收方式
  • 买一赠一是什么促销方式
  • 汇兑损益计入营业外收入吗
  • 企业固定资产没有加速折旧还填资产加速折旧表吗
  • 残保金是应交税费吗
  • 金税三期个税申报
  • 付设备款的会计分录
  • 企业没有期初数据,会计怎么做账
  • sql基础问题
  • mysql 复合查询
  • 如何查看mysql连接池
  • 详解MySQL的limit用法和分页查询语句的性能分析
  • 虚拟机中安装虚拟机
  • 如何设置linux
  • xp系统强制删除文件
  • window7电源设置
  • 如何删除win7
  • cpu资源占用率计算原理
  • linux挂载cd
  • win7桌面移到其他盘
  • 怎么更改电脑键盘语言
  • jquery window
  • js获取html自定义属性
  • python干嘛用
  • 怪物掉落物品的获取方式
  • 防止shell脚本重复执行
  • 轻松搞定是什么短语
  • python怎么用命令行
  • 2021年水利基金的税率是多少
  • 报企业增值税
  • 实名办税人员承诺书范本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设