缓存缓存缓存

DiskLruCache

DiskLruCache 是 Android 开发中用于‌管理磁盘缓存 ‌的工具类,核心作用是基于 ‌LRU(最近最少使用)算法‌在文件系统上维护一个固定大小的缓存池,实现数据的持久化存储与自动淘汰 。‌‌

核心作用

  • 减少网络请求‌:缓存图片、JSON 响应等数据,重复访问时直接从磁盘读取,降低流量消耗并提升加载速度 。
  • ‌**防止内存溢出(OOM)**‌:作为内存缓存(LruCache)的补充,将大文件(如图片)存于磁盘,避免占用过多内存 。
  • 自动空间管理 ‌:当缓存总量超过设定上限(maxSize)时,自动删除‌最近最少使用‌的条目,确保存储不失控 。
  • 保证数据一致性 ‌:通过 journal 日志文件和原子操作(commit/abort),防止因程序崩溃或 I/O 错误导致缓存文件损坏 。‌‌

关键特性

  • 持久化存储‌:数据保存在文件系统中,应用重启或关闭后缓存依然有效 。
  • 线程安全‌:内部同步机制支持多线程并发读写,无需额外加锁 。
  • 版本控制 ‌:通过 appVersion 参数,在应用升级时可自动清空旧缓存,避免数据不兼容 。‌‌

典型应用场景

  • 图片加载框架的二级缓存(如配合 Glide、Picasso 使用)。
  • 网络 API 响应数据的本地缓存。
  • 任何需要"有限空间内保留高频数据"的文件存储场景 。‌‌

简言之,DiskLruCache 解决了‌磁盘空间有限 ‌与‌数据无限增长‌之间的矛盾,是 Android 高效本地缓存的标准方案之一 。‌‌

需要我演示如何在 Glide 中配置 DiskLruCache 作为图片缓存吗?可以帮你快速上手实际应用。