成品直播源码,如何在开发时自定义缓存策略
缓存在成品直播源码中所占用的空间往往会成为迫使用户卸载应用的最后一根稻草。
开发者不能无上限对音视频资源进行缓存,通常的维护手法是通过 限制空间大小,比如,用户通常可以接受视频类应用有 1G 左右的缓存空间,即时通信类应用也许会更大些。
因此我们的成品直播源码缓存库也需要提供这样的能力,可通过实现DiskUsage接口,实现不同的缓存策略。
// 缓存空间管理类 public interface DiskUsage { void touch(File file) throws IOException; }
可以预设一些缓存策略供成品直播源码开发选择:
TotalCountLruDiskUsage:限制缓存数量
TotalSizeLruDiskUsage:限制缓存大小
UnlimitedDiskUsage:没有缓存限制
对于这样的诉求,在成品直播源码开发时通用的解决方案仍然是经典的 LruCache,通过最近最少算法,缓存达到上限时,清理掉最久远的缓存文件。