位置: 编程技术 - 正文

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游戏源码(金庸笔下十大最受欢迎人物)

  • 企业所得税行业所得率
  • 民办学校账务怎么做
  • 抄报税校验失败调用系统服务出错怎么办
  • 小规模纳税人转让土地使用权
  • 税法免抵退计算例题
  • 邀请境外机构提出申请
  • 增值税即征即退收入要交企业所得税吗
  • 核定征收企业有利润如何注销税务登记
  • 定额材料损耗率国家标准
  • 顾客办理会员卡要退怎么办
  • 持有至到期投资核算内容
  • 去税务局增加税目需要带什么资料
  • 什么情况需要对房屋外观拍照
  • 住房维修基金使用管理办法
  • 淘宝无票采购账务处理
  • 免抵退税金额是啥意思
  • 公司买厨房用品计入什么科目
  • 苹果手机录音配音乐怎么配
  • 股权变更需要缴纳印花税吗,缴纳多少
  • 激进型和保守型筹资组合怎么判断
  • 公司处理固定资产车辆怎么开发票
  • 发票已认证还能作废吗2020
  • php读取word
  • jquery编程
  • PHP:imagesetbrush()的用法_GD库图像处理函数
  • PHP:imagepsfreefont()的用法_GD库图像处理函数
  • 销售产品是销项税额还是进项税额
  • 高新技术产业的税收优惠
  • 挪威 北极熊
  • PHP:imagedestroy()的用法_GD库图像处理函数
  • 制造业利润占比多少合适
  • reactjs路由跳转
  • 新会计准则开办费如何做账务处理
  • 固定资产以前年度未入账怎么处理
  • 携程首页
  • php读取php文件内容
  • 体验了才明白的作文范文
  • jwt 鉴权
  • 买配件组装成产品算生产吗
  • 个人劳务所得年终汇算清缴
  • 接受捐赠收入要交企业所得税吗
  • 融资租赁视同销售吗
  • 存根联是自己留着吗
  • 园林绿化工程公司简介
  • 抵扣联怎么抵扣使用
  • 钢管租赁行业会计账务处理
  • 期初库存和期末库存可以修改吗
  • 小规模纳税人季度不超30万免增值税
  • 建设工程的材料质量检测由谁负责
  • 现代服务税目包括哪些具体分类
  • 主营业务收入净额在利润表里怎么看
  • 民间非营利组织会计科目
  • 跨月抵扣的发票能退回吗
  • 合同约定合同期限自动顺延
  • 出口退税企业退税流程
  • 土地管理费属于什么费用
  • 标的编制费
  • 写字楼物业费按照什么面积
  • 递延所得税资产怎么计算
  • 或有租金租赁
  • 股权转让如何支付利润
  • 企业建账前应考虑什么
  • 怎么调整原材料的数量和单价
  • 看视频出现弹幕怎么处理
  • windows xp死亡倒计时
  • red hat linux怎么用
  • m0b0player播放器
  • linux 零拷贝技术
  • jQuery插件下载
  • nodejs做接口
  • gitlab管理员账号 审批
  • perl脚本函数
  • nodejs项目搭建
  • 1.常用
  • android 更新apk
  • jquery获取file文件
  • 更改国名
  • 教师资格证认定流程
  • 税务催报通知书怎么接收
  • 固定资产处置要开票交税么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设