注意:这是Android上缓存机制新手的一般性问题。
为什么RS在FlickrSpiceService样本中使用LRU缓存?
有LruCacheBitmapObjectPersister
:
@Override
public CacheManager createCacheManager(Application application) throws CacheCreationException {
CacheManager manager = new CacheManager();
InFileBitmapObjectPersister filePersister = new InFileBitmapObjectPersister(getApplication());
LruCacheBitmapObjectPersister memoryPersister = new LruCacheBitmapObjectPersister(filePersister, 1024 * 1024);
manager.addPersister(memoryPersister);
return manager;
}
为什么不删除它,只需像这样使用InFileBitmapObjectPersister
:
@Override
public CacheManager createCacheManager(Application application) throws CacheCreationException {
CacheManager manager = new CacheManager();
InFileBitmapObjectPersister filePersister = new InFileBitmapObjectPersister(getApplication());
manager.addPersister(filePersister);
return manager;
}
答案 0 :(得分:0)
内存缓存(在这种情况下为LruCacheBitmapObjectPersister
)比文件系统缓存(InFileBitmapObjectPersister
)快得多,但同时它更小。
因此,使用较小(但更快)的内存缓存作为级别1和较大(但较慢)的文件系统缓存,因为级别2提供了改进的常用性能。您可以查看this broadly related answer for processor cache了解详情。多级缓存是计算机科学中反复出现的主题。