我已经采取了以下措施来处理应用程序中的位图:
这花费了我太多时间,我已经阅读了所有基于此的解决方案以及Google关于
谢谢。
- 使用占用内存1/8大小的
LruCache
存储Bitmaps
- 使用
BitmapFactory.Options
计算inSampleSize
- 在创建
Bitmaps
时捕获OOM
,调用evictAll
和System.gc()
- 有时候还会使用
AsyncTask
对Bitmaps
进行解码
BitmapFactory.decodeFile
,但是看起来虚拟机无法快速释放内存中的Bitmaps
。我在某个地方读到说可能存在使用BitmapFactory.decodeFile
的错误,因此我尝试使用BitmapFactory.decodeFileDescriptor
,但是我随机收到以下内容:
skia --- decoder->decode returned false
因此,如果我想使用BitmapFactory.decodeFileDescriptor
,是否需要修复FileInputStream
或其他问题?这花费了我太多时间,我已经阅读了所有基于此的解决方案以及Google关于
Bitmap
处理的建议,但我现在陷入了死局。谢谢。