sdcard/DCIM/.thumbnails文件夹里的庞然大物 是这样来的

From:http://bbs.anzhi.com/thread-5961340-1-1.html

/mnt/sdcard/DCIM/.thumbnails/.thumbdata3--1967290299  都知道这里的都是缓存  但是 这个文件小则几百MB,大则几个GB,你sd卡+手机


里的图片总共也没这么大吧  

,是不是很郁闷?!


这个文件的一些细节介绍如下:

是通过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

掉。

你可能感兴趣的:(android,Android开发,缓存,多媒体,VideoThumbnail)