在android中,许多图像加载库(例如Picasso--使用2%的磁盘缓存存储空间,Glide)除了在内存lru缓存中使用磁盘缓存。我可以理解为什么这可能对从网络下载的图像有用 - 如果内存缓存已满,请从磁盘读取而不是远程读取它们 - 从而避免网络延迟等。但是,如果我们只是读取本地映像在Android设备本身 - 我们通过使用单独的磁盘缓存与序列化的位图数据获得任何东西 - 因为数据必须从磁盘读取?如果您的应用需要缩略图并对原始图像进行二次采样并将其存储在缓存中,可能有意义吗?有没有研究显示性能增益。我看到在googles samples和其他bitmap cache库中使用了磁盘缓存。DiskLRUCache适用于Android中的位图(以及其他)
1
A
回答
0
所以这里有一些裁判我在AOSP docs发现:
内存缓存中加快访问最近查看 位图是有用的,但你不能依赖于图像在此 缓存可用。具有较大数据集的像GridView这样的组件可以轻松填充内存缓存中的 。您的应用程序可能会被另一个 任务打断,并且在后台可能会中止 ,并且内存缓存被破坏。一旦用户恢复,您的应用程序必须再次处理每个图像。
磁盘高速缓存可以在这些情况下被用来处理持久位图 并有助于减少加载时间如果照片不再在内存高速缓存可 。当然,从磁盘读取图像比从内存中加载 要慢,并且应该在后台线程中完成,因为读取次数可能无法预测。
相关问题
- 1. 适用于Android的EPSON SDK适用于其他打印机
- 2. 打印位图到其他位图android
- 3. 代码适用于图像,但不适用于codeigniter中的其他文件
- 4. 如何引用Xcode中的图像和其他对象以及物理位置?
- 5. Android使用kSoap以及.NET以外的其他web服务
- 6. Google Rich Snippets适用于一位作者,但不适用于其他
- 7. Android GCM服务适用于一款平板电脑,但不适用于其他
- 8. Cloudflare(以及其他基于DNS的CDN) - 使用Auth缓存
- 9. jQuery和其他库,以及使用'$'
- 10. 图片上传表单适用于某些人,但不适用于其他人?
- 11. PIL image.open()适用于某些图像,但不适用于其他人
- 12. 如何使用gmaps4rails显示选定的位置以及所有其他位置?
- 13. contenteditable保证金适用于其他绝对定位元素
- 14. Log4j适用于一个类,不适用于其他类
- 15. Java AudioInputStream适用于一个项目,但不适用于其他
- 16. 显示图像以及表格中的其他数据
- 17. Ionic2/Typescript:normalize()不适用于iOS9及以下
- 18. ShellExecute不适用于其他计算机
- 19. 如何在Android中显示设备的当前位置以及其他感兴趣的位置?
- 20. 以编程方式更改联系人图像适用于某些设备而不适用于其他人
- 21. openFileDialog仅适用于24位位图C#
- 22. 定位相对于其他
- 23. 应用程序仅适用于其他用户,但不适用于其他用户
- 24. Index.php不适用于VPS,但其他文件可以做
- 25. 在PySpark中禁用日志记录?我已经通过其他职位以及
- 26. 通用的JS函数适用于某些div,而不适用于其他人
- 27. 我的模态只适用于第一张图片,但不适用于其他图片?
- 28. 优化图库及其适配器
- 29. XSLT适用于IE浏览器,但其他地方不适用
- 30. JavaFx:如何设置位于其他包中的图像路径
伟大的主题。我从设备加载缩略图时出现OutOfMemory问题,处理图像时我总是使用Glide或Picasso,但我注意到Piccasso在处理大图像时,我仍然有时会遇到内存不足的问题。如果有更多关于思考的知识可以回答,那会很好。 –