现在的位置: 首页 > 综合 > 正文

android 里 thumbdata3 数据格式

2017年07月27日 ⁄ 综合 ⁄ 共 954字 ⁄ 字号 评论关闭

 /mnt/sdcard/DCIM/.thumbnails/.thumbdata3--1967290299 这个文件的一些细节介绍如下:
是通过MiniThumbFile.java这个文件提供的接口来访问这个文件的。
其中saveMiniThumbToFile 是把小图存到这个文件里
getMiniThumbFromFile是把小图从这个文件里取出来
这个文件名是从这样来的:sd卡的目录名 + "/.thumbdata"+version + "-"+mUri.hashCode(),version一般是MINI_THUMB_DATA_FILE_VERSION。
这个文件里面存的是一系列的小图数据卷,每个卷里含一个小jpeg和头信息,再加上填充的0。每个卷是10000字节(BYTES_PER_MINTHUMB=1000)。
要是这个要存的小jpeg超过10000字节,那么就放弃。头信息包含13字节:第一字节是0x01,第2至9字节是被称为magic的随机数,第10至13字节是紧跟着的jpeg的字节数。
 | 01 | Magic | JpegLen | jpeg Bytes | Padding Bytes 0 ...|
.thumbdata3--1967290299存放的是被称为 micro kind(即android.provider.MediaStore.Images.Thumbnails.MICRO_KIND)的小图的,大小为96x96 (TARGET_SIZE_MICRO_THUMBNAIL),所有图片都会产生这种小图,每个小图在这个文件里占有10000字节的一个卷。
还有一种 512 * 384的小图,为 android.provider.MediaStore.Images.Thumbnails.MINI_KIND类型,是直接每个存成一个jpeg的,在/mnt/sdcard/DCIM/.thumbnails/里的一系列jpeg就是它们。

/mnt/sdcard/DCIM/.thumbnails/.thumbdata3--1967290299会被Camera,gallery, MediaProvider 这三个进程直接存取,所以在它们运行过程中拔掉sd卡的话,会被processkiller kill掉。

以上分析基于 android2.3.4 的源代码。

抱歉!评论已关闭.