1、使用方式:
// 下面兩個依賴包可選,根據需求二選一便可,
compile 'com.ladingwu.library:fresco:0.0.9'
compile 'com.ladingwu.library:glide:0.0.9'
// 這個是必須的
compile "com.ladingwu.library:imageloader-framework:0.0.9"
2、初始化緩存
// 初始化代碼須要在Application中完成
ImageLoaderConfig config = new ImageLoaderConfig
// .Builder(LoaderEnum.FRESCO, new FrescoImageLoader())
.Builder(LoaderEnum.GLIDE,new GlideImageLocader())
// .Builder(LoaderEnum.UIL,new UilImageLoader())
.maxMemory(5 * 1024 * 1024L) // 單位爲Byte
.build();
ImageLoaderManager.getInstance().init(this, config);網絡
3、三個庫的使用比較框架
前置條件ide
一、使用uisdk框架中 recycleview 加載
二、加載100個地址,地址指向的文件相同,圖片大小:101kb
三、限速60kb
Imageloader:
網絡下載且展現(16張圖片):12.5秒
本地加載且展現(16張圖片):0.8秒
幀率:54幀
快速滾動到底顯示當前屏:很慢性能
glide:
網絡下載且展現(16張圖片):12.5秒
本地加載且展現(16張圖片):0.7秒
幀率:52幀
快速滾動到底顯示當前屏:很慢ui
fresco:
網絡下載且展現(16張圖片):12秒
本地加載且展現(16張圖片):0.6秒
快速滾動幀率:56幀
快速滾動到底顯示當前屏:比Imageloader、glide快三倍this
結論:加載速度、幀率和內存都是fresco更勝一籌,因此建議借鑑或者使用fresco。隊列
fresco的優點:
一、5.0如下圖片加載使用Android系統匿名共享內存(Anonymous Shared Memory),能夠減小堆內存溢出問題和提升性能,提升性能的緣由是Android系統匿名共享內存是手動申請手動釋放減小垃圾回收器的工做
二、圖片加載隊列管理的更加合理,不在當期屏的view則將對應的任務進行移除
三、根據不一樣系統版本使用不同的解碼器,提升圖片解碼效率
四、內存緩存策略增長未解碼緩存,減小磁盤讀寫次數圖片