? ? ? ?UIL(Universal Image Loader)是用在Android平臺的一款圖片緩存框架,截止至今最新版本v1.9.5。目前市面上圖片緩存框架有很多,UIL出現(xiàn)的比較早,作者在15年底停止了維護(hù)。
? ? ? ?借此感謝開源者的付出及大家的支持。
近期學(xué)習(xí)了UIL v1.9.4源碼,受益很深,也發(fā)現(xiàn)了自己的很多不足。Now,寫記下自己對UIL的學(xué)習(xí)經(jīng)歷,給自己留下點(diǎn)回憶。
? ? ? ?僅是自己的看法,不好的地方, 錯誤的地方,歡迎大家指正,不勝感激。
UIL
1.下載地址:https://github.com/nostra13/Android-Universal-Image-Loader
2.這是從官方剪切的圖片load和display的流程圖

從圖中可以發(fā)現(xiàn)UIL使用了2級緩存來存儲圖片。
當(dāng)ui線程display圖片的時候,圖片獲取先后順序:memory cache->disk cache->net。
load from net:下載圖片->本地緩存->解析圖片到bitmap->預(yù)處理bitmap->內(nèi)存緩存bitmap->拋出處理后的bitmap->ui控件顯示圖片
load from disk? cache: 解析圖片到bitmap->預(yù)處理bitmap->內(nèi)存緩存bitmap->拋出處理后的bitmap->ui控件顯示圖片
load from memory cache: 拋出處理后的bitmap->ui控件顯示圖片
3.項目框架結(jié)構(gòu)

cache分支完成了memory cache 和disk cache?
core分支包含了download,圖片解析,bitmap預(yù)處理......
utils分支是通用工具類
接下來會對各個分支的功能點(diǎn)進(jìn)行分析