gpt4 book ai didi

Android 在图像捕获时内存不足

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:57 30 4
gpt4 key购买 nike

我有一个拍摄照片的 Activity (具有完整的可能分辨率,所以非常大),然后应用程序有机会分析它们。一次只处理一张照片。问题是我在拍了 4 - 5 张照片后遇到了“内存不足”的情况。我明白了

dalvikvm-heap Out of memory on a 5070745-byte allocation

(字节大小不同)后跟

Camera-JNI Couldn't allocate byte array for JPEG data

我的应用程序没有崩溃,但在我看来,从此时起,相机根本无法传送图像。我注意我的应用程序中的内存使用情况,但这里似乎在外面某处存在内存泄漏,我在问我如何处理这个问题。有什么解决办法吗?

最佳答案

这可能不是你想要做的,但为了在 GridView 上显示多张大图片(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);

选项是重要的部分,通过改变设置,我设法将内存从崩溃的地方降低到大约 28MB,当我开始使用 inSampleSize 时。随着 inPurgeable 和 inInputShareable 设置设置为 true,它进一步下降。我的 Activity 仍然很缓慢,但已经好多了。

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

问候,

凯文

关于Android 在图像捕获时内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4511057/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com