android 裏 thumbdata3 數據格式

 /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 的源代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章