如何使用RoboSpice缓存类型

时间:2015-06-11 10:05:34

标签: android caching robospice lru android-lru-cache

注意:这是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;
}

1 个答案:

答案 0 :(得分:0)

内存缓存(在这种情况下为LruCacheBitmapObjectPersister)比文件系统缓存(InFileBitmapObjectPersister)快得多,但同时它更小。

因此,使用较小(但更快)的内存缓存作为级别1和较大(但较慢)的文件系统缓存,因为级别2提供了改进的常用性能。您可以查看this broadly related answer for processor cache了解详情。多级缓存是计算机科学中反复出现的主题。