圖片加載框架Glide,Picasso fresco volley imageloader Universal Image Loader的比較

glide(底層):HttpUrlConnection

Glide的網絡請求部分可以使用當前最流行的網絡請求框架Volley或OkHttp,也可以通過Glide的ModelLoader接口自己寫網絡請求。 
Glide默認使用HttpUrlConnection進行網絡請求

Google推薦的圖片加載庫,專注於流暢的滾動。

1.優點 
1)使用RGB_565,內存佔用比Picasso小一半。 
2)圖片展示和頁面的生命週期一致(對context有類型要求) 
3)相比Picasso,Glide在緩存策略和加載GIF方面略勝一籌 
減少了緩存文件的大小 
Picasso和Glide在磁盤緩存策略上有很大的不同。Picasso緩存的是全尺寸的,而Glide緩存的是跟ImageView尺寸相同的。 這樣在下次顯示的時候不需要重新調整大小,顯示的會更快。 
4)在頁面不可見時停止網絡請求,停止對圖片的解析操作。 
5)專注於流暢的滾動 
6)當列表在滑動的時候,調用pauseRequests()取消請求,滑動停止時,調用resumeRequests()恢復請求。這樣是不是會好些呢? 
7)支持當你想清除掉所有的圖片加載請求時 
8)同時因爲Glide和Activity/Fragment的生命週期是一致的,因此gif的動畫也會自動的隨着Activity/Fragment的狀態暫停、重放。Glide 的緩存在gif這裏也是一樣,調整大小然後緩存。 
9)支持gif 
但是從我的一次測試結果來看Glide 動畫會消費太多的內存,因此謹慎使用。 
10)Glide還可以將任何的本地視頻解碼成一張靜態圖片。 
11)使用glide,你可以配置圖片顯示的動畫,而Picasso只有一種動畫:fading in。 
12)可以使用thumbnail()產生一個你所加載圖片的thumbnail。

2.缺點 
1)Glide 功能強大,但代碼量大、流轉複雜。在較深掌握的情況下才推薦使用,免得出了問題難以下手解決。

3.性能分析 
比Picasso性能好一些。

4.風險(包大小等) 
包大小:1.3mb 
能否解決listview圖片錯位問題?可以

Picasso(底層默認無緩存,使用的是API 9 以上使用 okhttp,以下使用 Urlconnection的緩存)

1.優點 
1)picasso能夠根據網絡狀態調整線程池的併發數量 
2)使用簡單,源碼簡單易懂。Picasso 代碼雖然只在一個包下,沒有嚴格的包區分,但代碼簡單、邏輯清晰 
3)內部維護了一個監控類,能夠實時反饋內存緩存的命中率,使用狀態等等。

2.缺點 
1)ARGB_8888 
2)Picasso的方式則因爲需要在顯示之前重新調整大小而導致一些延遲,Glide加載顯示更快。

3.性能分析

4.風險(包大小等) 
包大小:1.2mb 
能否解決listview圖片錯位問題?

fresco(默認網絡HttpURLConnection)

Facebook出的,不是一般的強大。

1.優點 
1)使用了Native緩存(5.0以下,不包括5.0) 
2)支持模糊漸進形式展示圖片(類似webView) 
3)能夠根據View的展示狀態控制網絡請求和圖片解析的狀態(在頁面不可見時停止對圖片的網絡請求和解析操作,在頁面可見時恢復操作) 
4)對多幀動畫圖片支持更好(未測試) 
5)對外提供清除緩存的方法

2.缺點 
1)ARGB_8888 
2)體積較大,集成後增大apk體積 
3)需要使用特定的view,需要xml支持

3.性能分析

4.風險(包大小等) 
包大小:4mb 
能否解決listview圖片錯位問題?

volley imageloader

1.優點

2.缺點 
Google官方出品,可惜不能加載本地圖片~

3.性能分析

4.風險(包大小等)

Universal Image Loader

1.優點

2.缺點 
一個強大的圖片加載庫,包含各種各樣的配置,最老牌,使用也最廣泛。

3.性能分析

4.風險(包大小等)

發佈了39 篇原創文章 · 獲贊 14 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章