Android 图像捕捉时内存不足

2023-11-21

我有一个拍摄照片的活动(具有全部可能的分辨率,因此相当大),应用程序有机会分析它们。一次仅处理一张照片。问题是我在拍了 4 - 5 张照片后遇到了“内存不足”的情况。我懂了

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

(字节大小不同)随后

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

我的应用程序没有崩溃,但在我看来,相机从此时开始无法传输图像。我关注应用程序中的内存使用情况,但在这里似乎外部某处存在内存泄漏,我问我如何应对这个问题。对此存在任何解决方案吗?


这可能不完全是您想要做的,但为了在网格视图上显示多个大图片(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);

选项是重要的部分,通过改变设置,当我开始使用 inSampleSize 时,我设法将内存从崩溃的地方减少到 28MB 左右。当 inPurgeable 和 inInputShareable 设置为 true 时,它​​会进一步下降。我的活动仍然迟缓,但已经好多了。

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

Regards,

Kevin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 图像捕捉时内存不足 的相关文章

随机推荐