相簿磁碟快取主要是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
keychecksum
offset
length
data(var—len)
keychecksum
offset
length
data(var—len)
… 灰色部分為檔案頭,僅佔四個位元組;藍色區域為資料的blob頭,key占用8個位元組,其餘佔4個位元組,共22個位元組;紅色區域為資料域,長度可變(blob的length指定),表示具體的縮圖資料。
blobcache載入流程:
縮圖插入流程:
縮圖查詢流程:
原始碼位置:
網易相簿列表分析
我是通過抓包和檔案呼叫跟蹤分析,來摸清網易相簿的列表方式的。值得注意的是,網易相簿的相片位址列表並不是由伺服器處理後再發過來的,而是通過指令碼控制,伺服器只是發個框架和一些控制指令碼過來 用 firefox 2.0 jsview 瀏覽茜茜的網易相簿 http photo.163.com photos...
Fresco磁碟快取
import android.content.context import android.graphics.bitmap import android.os.environment import android.util.log import com.facebook.cache.disk.dis...
磁碟快取專題之三 磁碟快取的演算法 寫演算法
雖然快取的最終目的為了提高效能,但快取寫的技術與快取讀的技術有很大的不同。但如果它帶來的資料丟失危險很大,那麼,就是乙個不可接受的方案。因此,安全地將資料儲存在非易失儲存中是很重要的,因為這樣資料就可以長期地儲存。雖然讀快取技術用於讀操作時可以提高系統效能,但當用於新產生資料的寫操作時,卻產生了一些...