1. 程式人生 > >Android 三大圖片載入框架比較

Android 三大圖片載入框架比較

1.哪三大圖片載入框架?
1) Picasso
2) Glide
3) Fresco

2.介紹:
Picasso :和Square的網路庫一起能發揮最大作用,因為Picasso可以選擇將網路請求的快取部分交給了okhttp實現。

Glide:模仿了Picasso的API,而且在他的基礎上加了很多的擴充套件(比如gif等支援),Glide預設的Bitmap格式是RGB_565,比    Picasso預設的ARGB_8888格式的記憶體開銷要小一半;Picasso快取的是全尺寸的(只快取一種),而Glide快取的是跟ImageView尺寸相同的(即56*56和128*128是兩個快取) 。

FB的圖片載入框架Fresco:最大的優勢在於5.0以下(最低2.3)的bitmap載入。在5.0以下系統,Fresco將圖片放到一個特別的記憶體區域(Ashmem區)。當然,在圖片不顯示的時候,佔用的記憶體會自動被釋放。這會使得APP更加流暢,減少因圖片記憶體佔用而引發的OOM。為什麼說是5.0以下,因為在5.0以後系統預設就是儲存在Ashmem區了。

3.總結:
Picasso所能實現的功能,Glide都能做,無非是所需的設定不同。但是Picasso體積比起Glide小太多如果專案中網路請求本身用的就是okhttp或者retrofit(本質還是okhttp),那麼建議用Picasso,體積會小很多(Square全家桶的幹活)。Glide的好處是大型的圖片流,比如gif、Video,如果你們是做美拍、愛拍這種視訊類應用,建議使用。
Fresco在5.0以下的記憶體優化非常好,代價就是體積也非常的大,按體積算Fresco>Glide>Picasso
不過在使用起來也有些不便(小建議:他只能用內建的一個ImageView來實現這些功能,用起來比較麻煩,我們通常是根據Fresco自己改改,直接使用他的Bitmap層)