? ? ? ?UIL(Universal Image Loader)是用在Android平臺的一款圖片緩存框架,截止至今最新版本v1.9.5。目前市面上圖片緩存框架有很多,UIL出現(xiàn)的比較早,作者在15年底停止了維護。
? ? ? ?借此感謝開源者的付出及大家的支持。
近期學習了UIL v1.9.4源碼,受益很深,也發(fā)現(xiàn)了自己的很多不足。Now,寫記下自己對UIL的學習經歷,給自己留下點回憶。
? ? ? ?僅是自己的看法,不好的地方, 錯誤的地方,歡迎大家指正,不勝感激。
UIL
1.下載地址:https://github.com/nostra13/Android-Universal-Image-Loader
2.這是從官方剪切的圖片load和display的流程圖
從圖中可以發(fā)現(xiàn)UIL使用了2級緩存來存儲圖片。
當ui線程display圖片的時候,圖片獲取先后順序:memory cache->disk cache->net。
load from net:下載圖片->本地緩存->解析圖片到bitmap->預處理bitmap->內存緩存bitmap->拋出處理后的bitmap->ui控件顯示圖片
load from disk? cache: 解析圖片到bitmap->預處理bitmap->內存緩存bitmap->拋出處理后的bitmap->ui控件顯示圖片
load from memory cache: 拋出處理后的bitmap->ui控件顯示圖片
3.項目框架結構
cache分支完成了memory cache 和disk cache?
core分支包含了download,圖片解析,bitmap預處理......
utils分支是通用工具類
接下來會對各個分支的功能點進行分析