Android上的图像捕获内存不足

geo*_*gij 7 android image out-of-memory capture

我有一个活动拍摄照片(完全可能的分辨率,非常大),应用程序有机会分析它们.一次只能处理一张照片.问题是我在4-5张照片之后遇到了"内存不足".我知道了

dalvikvm-heap 5070745字节分配的内存不足

(字节大小不同)后跟

Camera-JNI无法为JPEG数据分配字节数组

我的应用程序没有崩溃,但因为在我看来,相机根本无法从此点传送图像.我注意到我的应用程序中的内存使用情况,但这里似乎外面有一个内存泄漏,我问我怎样才能应对这个问题.任何解决方案都适用于此?

小智 11

这可能不是你想要做的,但为了在网格视图上显示多个大图片(4-6 MB),我发现这个代码创建了一个质量较低的较小位图,以避免超出记忆情境:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 5;
options.inPurgeable = true;
options.inInputShareable = true;
Bitmap bm = BitmapFactory.decodeFile("/sdcard/myapp/" + filesFound.get(position), options);
Run Code Online (Sandbox Code Playgroud)

选项是重要的部分,通过改变设置,我设法将内存从崩溃的位置缩小到我开始使用inSampleSize时的大约28MB.它进一步下降,inPurgeable和inInputShareable设置设置为true.我的活动仍然很迟钝,但情况要好得多.

对于您的应用程序,如果它可以分析位图,上面的代码可能会缩小内存使用量以使其工作.我还是Android的新手,所以这可能根本不起作用.. ;-).

问候,

凯文