Skip to content

Android文件缓存管理: 1、同步读写/异步读写:提供简单易用的api,可以同步读写文件、异步读写文件 2、异步读取并回调到主线程:提供SyncCallback,该回调函数,在异步读取文件后会回调的主线程 3、自动从最老的文件开始清理超过缓存大小限制的文件: CacheManager.getInstance(applicationContext).getDiskCache("dir").setAutoClearEnable(true); 4、线程安全 文件写入有加读写锁,每个文件一把锁,保证线程安全,锁放在对象池中,高效高性能 5、直接读写对象:提供了api,直接读写对象即可。

Notifications You must be signed in to change notification settings

dcn01/DiskCacheManager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

文件缓存管理: 1、同步读写/异步读写:提供简单易用的api,可以同步读写文件、异步读写文件 2、异步读取并回调到主线程:提供SyncCallback,该回调函数,在异步读取文件后会回调的主线程 3、自动从最老的文件开始清理超过缓存大小限制的文件: CacheManager.getInstance(applicationContext).getDiskCache("dir").setAutoClearEnable(true); 4、线程安全 文件写入有加读写锁,每个文件一把锁,保证线程安全,锁放在对象池中,高效高性能 5、直接读写对象:提供了api,直接读写对象即可。

1、使用 文件缓存管理入口,都用CacheManager调用就好了,其他类都设置为非public的,避免调用错了 CacheManager.java Demo: 1)写入 save data CacheManager.getInstance(applicationContext).getDiskCache("dir").putObject("fileName", data); 如果要自定义文件夹 CacheManager.getInstance(applicationContext).getDiskCache("dir", "maxLimitSize").putObject("fileName", data);

    2)读取 read data
        同步读取:
        CacheManager.getInstance(applicationContext).getDiskCache("dir").get("fileName");
        异步读取
        CacheManager.getInstance(applicationContext).getDiskCache("dir").getObject("fileName", new AsyncCallback<String>(){
                    @Override
                    public void onResult(String object) {

                    }
                });

2、内容 CacheManager.java 封装了一个Map,key为文件夹路径,value为该文件夹的管理器(DiskCache)

缓存文件夹及其管理器是为了统一对该文件的操作入口,通过同一个对象操作该文件,方便处理并发问题

DiskCache.java  内部包含自动清理控制器 AutoClearController、文件操作对象AsyncFileCache

AutoClearController  记录该文件下所有文件及文件的最后修改时间、文件总大小,当写入数据时,会判断是否超过缓存大小限制,超过则从最老的文件开始清理
                     默认是关闭自动清理的,开启需要调用(enable auto clear old files when out of max size)
					 CacheManager.getInstance(applicationContext).getDiskCache("dir").setAutoClearEnable(true)

AsyncFileCache  异步文件操作类,文件的读、写、删除等操作

DiskCacheWriteLocker 文件写入锁,防止从不同线程操作该文件时并发写入的问题

About

Android文件缓存管理: 1、同步读写/异步读写:提供简单易用的api,可以同步读写文件、异步读写文件 2、异步读取并回调到主线程:提供SyncCallback,该回调函数,在异步读取文件后会回调的主线程 3、自动从最老的文件开始清理超过缓存大小限制的文件: CacheManager.getInstance(applicationContext).getDiskCache("dir").setAutoClearEnable(true); 4、线程安全 文件写入有加读写锁,每个文件一把锁,保证线程安全,锁放在对象池中,高效高性能 5、直接读写对象:提供了api,直接读写对象即可。

Resources

Stars

Watchers

Forks

Packages

No packages published