gpt4 book ai didi

android - 我可以在用于解码图片文件的位图分配中捕获 Android 中的内存不足异常吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:31 25 4
gpt4 key购买 nike

我 try catch 图片文件解码,但未能捕获内存不足异常,应用程序崩溃。

我知道解码图片文件的一些技巧,例如子采样。但是我需要放大图片才能看到细节,所以我不能对它进行太多二次采样。对于一些较新的设备,它可以成功分配更大的内存以避免内存不足异常。

对于一些旧设备,它不能。

如果我可以为不同的设备定制我的应用程序,那就太好了。

所以我想:(1) 我希望我能捕捉到内存不足的异常,这样万一我捕捉到它,我就可以减小图像的大小。(2) 或者,我希望能得到可用内存的大小来分配。

我在网上搜索,找不到答案。

最佳答案

首先,您可以在堆栈跟踪中看到抛出 OutOfMemoryError 的位置。如果您没有捕获到它,那是因为 a) 您捕获的是 Exception 而不是 Throwable,或者 b) 错误是在您拥有 catch 语句的其他地方抛出的。对于 OutOfMemoryError,您无法保证它将被抛出的位置。通常它是你处理位图的地方,但它也可能是另一个恰好同时分配内存的线程。

获取设备上的可用内存很简单:http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()

Android 团队有很多关于位图和内存的文章,如果您还没有看过的话:http://developer.android.com/training/displaying-bitmaps/index.html

祝你好运!

关于android - 我可以在用于解码图片文件的位图分配中捕获 Android 中的内存不足异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17666390/

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