android camera out of memory安卓照相机OOM问题的解决
来源:互联网 发布:java中document.form 编辑:程序博客网 时间:2024/05/16 06:07
最近在学习安卓照相机,在网上找了一些demo ,但发现了大多数调用camera api的demo存在OOM问题,当拍摄第一张照片的时候程序正常,拍摄第二张时出现以下问题:
dalvik out of memory
其根本原因是
Bitmap bmp=BitmapFactory.decodeByteArray(data, 0, data.length);
使用BitmapFactory时,手机拍摄的图片太大了,系统为BitmapFactory分配的内存空间只有6M(这个数据可能不准,不过没关系,反正就是内存不足),当传入大的文件时就会出现OOM问题,导致程序异常退出。
目前找到的解决方法主要有以下两个
方法一:每次使用完后立即调用以下代码,在下一次调用BitmapFactory前清除bmp。测试发现,本来拍2张就能异常退出的程序,现在拍19张或者20张的时候异常退出,说明每次清除bmp的时候BitmapFactory并没有回复到初始状态,还是有内存残留。
bmp.recycle();
System.gc();
方法二:
选择camera输出格式为jpeg,直接保存拍照的data。用这个方法可以完美避开BitmapFactory。测试发现,本来拍2张就能异常退出的程序,现在拍到我手软了(大约20多张)还没有出现异常退出现象。主要代码如下:
Parameters param=camera.getParameters();
param.setPictureFormat(FORMAT);
camera.setParameters(param);
本文参考的camera程序为http://blog.csdn.net/jianghuiquan/article/details/8569187 (当然这个是有OOM问题滴)
作者修改后的源代码(方法二):http://download.csdn.net/detail/iywgqt/7866477 (记得点赞,thanks)
欢迎各位小伙伴转载,但请保留原文地址,谢谢。
- android camera out of memory安卓照相机OOM问题的解决
- android out of memory oom问题
- Android oom(out of memory)的疑难问题
- Android Out of Memory (OOM)
- android out of memory(OOM)
- android out of memory(OOM)
- 一个oom(out of memory)问题的定位和“”解决“”
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- 转载:Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- Android Out Of Memory(OOM) 的详细研究
- 号码匹配位数
- 磁卡(如银行卡)知识
- 使用 MXML 或 ActionScript 添加图形Graphics
- 【操作系统】Link.cpp
- Magento获取指定分类下的产品和获取子分类及产品数量
- android camera out of memory安卓照相机OOM问题的解决
- asp.net web.config 设置Session过期时间
- 二叉树面试题总结
- C# WinForm开发系列 - DataGridView
- 安装程序制作
- 【操作系统】main.cpp
- Java集合类的类图
- Tair LDB基于Prefixkey的范围查找性能优化项目之如何建立prefix bloomfilter
- Swift数字类型之间的转换