相册磁盘缓存分析

相册磁盘缓存主要是imgcache.0,imgcache.1,imgcache.idx三个文件;其中imgcache.idx位索引文件,其余两个位数据文件(存放缩略图内容)。


索引文件格式:

MAGIC MAX_ENTRIES MAX_BYTES ACTIVE_REGION ACTIVE_ENTRIES ACTIVE_BYTES VERSION CHECKSUM THUMB_KEY THUMB_OFFSET THUMB_KEY THUMB_OFFSET
绿色部分为索引文件头,每个字节均为4个字节,共32个字节;黄色部分表示每个缩略图的可以和在数据文件中的起始位置,THUMB_KEY占8个字节,THUMB_OFFSET占3个字节,每表示一个缩略图需要12个字节。

数据文件格式:

MAGIC KEY CHECKSUM OFFSET LENGTH DATA(VAR—LEN) KEY CHECKSUM OFFSET LENGTH DATA(VAR—LEN)
灰色部分为文件头,仅占四个字节;蓝色区域为数据的Blob头,KEY占用8个字节,其余占4个字节,共22个字节;红色区域为数据域,长度可变(BLOB的LENGTH指定),表示具体的缩略图数据。


BlobCache加载流程:


缩略图插入流程:

相册磁盘缓存分析_第1张图片


缩略图查询流程:

相册磁盘缓存分析_第2张图片


源码位置:https://github.com/zhangcheng0308/GalleryDiskCache

你可能感兴趣的:(相册磁盘缓存分析)