Android「圖片加載到底哪家強」

轉載自:

http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650661949&idx=1&sn=09aececd879bd8b4635e6a63a8249808#rd

今天來給大家分析下,圖片加載到底該怎么選擇!

1

UniversalImageLoader

https://github.com/nostra13/Android-Universal-Image-Loader

UIL可以算是老牌最火的圖片加載庫了,使用過這個開源庫的項目可以說是多的令人發指,即使到現在 GitHub 上他的 Star 數仍然是眾多圖片加載庫最多的。

可惜的是該作者在項目中說明,從去年的9月份,他就已經停止了對該項目的維護。這就意味著以后任何的 bug 都不會修復,任何的新特性都不會再繼續開發,所以毫無疑問 UIL 不推薦在項目中使用了。

2

Picasso

https://github.com/square/picasso

Picasso 是 Square 公司的大作,名字起的也這么文藝,叫「畢加索」,意為加載圖片就像畫畫一樣,是一門藝術。這個庫是我之前一直很喜歡的,因為他不僅具備圖片加載應有盡有的強大功能,他的調用也是如此簡潔文藝:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

以上代碼就是給一個 ImageView 加載遠程圖片的一個示例,是不是很簡潔?

當然不止如此,他還提供更多的用法,足以滿足你實際項目中的各種需求,具體這些用法本文就不提了,可以去官網自行研究。

3

Glide

https://github.com/bumptech/glide

Glide 是 Google 一位員工的大作,他完全是基于 Picasso 的,沿襲了 Picasso 的簡潔風格,但是在此做了大量優化與改進。

Glide 默認的 Bitmap 格式是 RGB_565 格式,而 Picasso 默認的是 ARGB_8888 格式,這個內存開銷要小一半。

在磁盤緩存方面,Picasso 只會緩存原始尺寸的圖片,而 Glide 緩存的是多種規格,也就意味著 Glide 會根據你 ImageView 的大小來緩存相應大小的圖片尺寸,比如你 ImageView 大小是200*200,原圖是 400*400 ,而使用 Glide 就會緩存 200*200 規格的圖,而 Picasso 只會緩存 400*400 規格的。這個改進就會導致 Glide 比 Picasso 加載的速度要快,畢竟少了每次裁剪重新渲染的過程。

最重要的一個特性是 Glide 支持加載 Gif 動態圖,而 Picasso 不支持該特性。

除此之外,還有很多其他配置選項的增加。

總體來說,Glide 是在 Picasso 基礎之上進行的二次開發,各個方面做了不少改進,不過這也導致他的包比 Picasso 大不少,不過也就不到 500k,Picasso 是100多k,方法數也比 Picasso 多不少,不過畢竟級別還是蠻小的,影響不是很大。

4

Fresco

https://github.com/facebook/fresco

Fresco 是 Facebook 出品,他是新一代的圖片加載庫,我們知道 Android 應用程序可用的內存有限,經常會因為圖片加載導致 OOM,雖然我們有各種手段去優化,盡量減少出現 OOM 的可能性,但是永遠沒法避免,尤其某些低端手機 OOM 更是嚴重。而 Facebook 就另辟蹊徑,既然沒法在 Java 層處理,我們就在更底層的 Native 堆做手腳。于是 Fresco 將圖片放到一個特別的內存區域叫 Ashmem 區,就是屬于 Native 堆,圖片將不再占用 App 的內存,Java 層對此無能為力,這里是屬于 C++ 的地盤,所以能大大的減少 OOM。

所以此庫很強大,不過用起來也比較復雜,包也比較大,貌似有2、3M,底層涉及到的 C++ 領域,想讀源碼也比較困難。

5

總結

綜合來看,毫無疑問 Glide 與 Picasso 之間優先推薦選擇 Glide,尤其是如果你的項目想要支持 Gif 動態圖,那更該選擇 Glide 。

但是如果你的項目使用了 Square 公司的全家桶,如 Retrofit 或者 OkHttp ,那么搭配 Picasso 一起使用也不是不可,兼容性可能會更好些,占用體積也會少些。

對于一般的 App 使用 Fresco 未免有些大材小用了,大部分情況 Glide 都能滿足你的需求了,但是如果你的 App 中大量使用圖片,比如是類似 Instagram 一類的圖片社交 App ,那么推薦使用 Fresco ,雖然稍復雜,但是還是推薦使用 Fresco ,對提升你 App 的性能與體驗有不少幫助,值得花時間去研究并應用到自己的 App 上來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容