圖片加載框架對比分析

glide

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圖片錯位問題?可以

glide框架:點擊打開鏈接

Picasso

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

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

3.性能分析

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

Picasa框架:點擊打開鏈接

fresco

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圖片錯位問題?

fresco框架:點擊打開鏈接

volley imageloader

1.優點

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

3.性能分析

4.風險(包大小等)

Universal Image Loader

1.優點:這個應該是我們用的最多的圖片加載框架了,但是並不支持動態圖片的加載,比較好用

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

3.性能分析

4.風險(包大小等)

綜述

  都能處理多種來源的圖片,網絡圖片,本地圖片,assets圖片,都維護了內部的LruCache,Threadpool。 
  glide明顯優於Picasso,但是glide和fresco之間的優劣對比還不知。 
http://www.mamicode.com/info-detail-929571.html這篇文章的測試顯示在內存方面,fresco比glide有優勢一些。 

  如果可以駕馭fresco的話,建議還是選擇fresco。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章