ANDROID開源項目推薦之「圖片加載到底哪家強」

版權(quán)聲明:本文為 stormzhang 原創(chuàng)文章仰坦,可以隨意轉(zhuǎn)載,但必須在明確位置注明出處C灾!;越住!

圖片加載幾乎是任何 Android 項目中必備的需求翔脱,而圖片加載的開源庫也越來越多奴拦,我們姑且在 GitHub 上搜索下 android image 關(guān)鍵字,出來的前五個按照 Star 數(shù)排序的項目如下:

可以看到前四個是大家比較熟知的圖片加載庫届吁,有 UniversalImageLoader错妖、Picasso、Fresco疚沐、Glide暂氯,至于第五個 ion 其實是一個網(wǎng)絡(luò)庫,只不過也提供了圖片加載的功能亮蛔,跟 Volley 類似痴施,也提供圖片加載的功能,但是如果圖片加載是一個強需求的話尔邓,我更喜歡專注的庫晾剖,所以本文只討論單純的圖片加載庫。

我相信大家很糾結(jié)到底該選擇哪一個呢梯嗽?貌似它們在GitHub上都有自己的一席之地齿尽,Star 數(shù)都蠻高的,確實很難抉擇灯节,那么今天我就來給大家分析下循头,圖片加載到底該怎么選擇绵估!

1. UniversalImageLoader

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

UIL可以算是老牌最火的圖片加載庫了,使用過這個開源庫的項目可以說是多的令人發(fā)指卡骂,即使到現(xiàn)在 GitHub 上他的 Star 數(shù)仍然是眾多圖片加載庫最多的国裳。

可惜的是該作者在項目中說明,從去年的9月份全跨,他就已經(jīng)停止了對該項目的維護缝左。這就意味著以后任何的 bug 都不會修復(fù),任何的新特性都不會再繼續(xù)開發(fā)浓若,所以毫無疑問 UIL 不推薦在項目中使用了渺杉。

2. Picasso

https://github.com/square/picasso

Picasso 是 Square 公司的大作,名字起的也這么文藝挪钓,叫「畢加索」是越,意為加載圖片就像畫畫一樣,是一門藝術(shù)碌上。這個庫是我之前一直很喜歡的倚评,因為他不僅具備圖片加載應(yīng)有盡有的強大功能,他的調(diào)用也是如此簡潔文藝:

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

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

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

3. Glide

https://github.com/bumptech/glide

Glide 是 Google 一位員工的大作,他完全是基于 Picasso 的暂筝,沿襲了 Picasso 的簡潔風格箩言,但是在此做了大量優(yōu)化與改進。

Glide 默認的 Bitmap 格式是 RGB_565 格式焕襟,而 Picasso 默認的是 ARGB_8888 格式陨收,這個內(nèi)存開銷要小一半。

在磁盤緩存方面鸵赖,Picasso 只會緩存原始尺寸的圖片务漩,而 Glide 緩存的是多種規(guī)格,也就意味著 Glide 會根據(jù)你 ImageView 的大小來緩存相應(yīng)大小的圖片尺寸它褪,比如你 ImageView 大小是200200饵骨,原圖是 400400 ,而使用 Glide 就會緩存 200200 規(guī)格的圖茫打,而 Picasso 只會緩存 400400 規(guī)格的居触。這個改進就會導(dǎo)致 Glide 比 Picasso 加載的速度要快妖混,畢竟少了每次裁剪重新渲染的過程。

最重要的一個特性是 Glide 支持加載 Gif 動態(tài)圖轮洋,而 Picasso 不支持該特性制市。

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

總體來說祥楣,Glide 是在 Picasso 基礎(chǔ)之上進行的二次開發(fā),各個方面做了不少改進汉柒,不過這也導(dǎo)致他的包比 Picasso 大不少误褪,不過也就不到 500k,Picasso 是100多k竭翠,方法數(shù)也比 Picasso 多不少振坚,不過畢竟級別還是蠻小的,影響不是很大斋扰。

4. Fresco

https://github.com/facebook/fresco

Fresco 是 Facebook 出品渡八,他是新一代的圖片加載庫,我們知道 Android 應(yīng)用程序可用的內(nèi)存有限传货,經(jīng)常會因為圖片加載導(dǎo)致 OOM屎鳍,雖然我們有各種手段去優(yōu)化,盡量減少出現(xiàn) OOM 的可能性问裕,但是永遠沒法避免逮壁,尤其某些低端手機 OOM 更是嚴重。而 Facebook 就另辟蹊徑粮宛,既然沒法在 Java 層處理窥淆,我們就在更底層的 Native 堆做手腳。于是 Fresco 將圖片放到一個特別的內(nèi)存區(qū)域叫 Ashmem 區(qū)巍杈,就是屬于 Native 堆忧饭,圖片將不再占用 App 的內(nèi)存,Java 層對此無能為力筷畦,這里是屬于 C++ 的地盤词裤,所以能大大的減少 OOM。

所以此庫很強大鳖宾,不過用起來也比較復(fù)雜吼砂,包也比較大,貌似有2鼎文、3M渔肩,底層涉及到的 C++ 領(lǐng)域,想讀源碼也比較困難漂问。

5. 總結(jié)

綜合來看赖瞒,毫無疑問 Glide 與 Picasso 之間優(yōu)先推薦選擇 Glide女揭,尤其是如果你的項目想要支持 Gif 動態(tài)圖,那更該選擇 Glide 栏饮。

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矢空,一起剝皮案震驚了整個濱河市航罗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屁药,老刑警劉巖粥血,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酿箭,居然都是意外死亡复亏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門缭嫡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜓耻,“玉大人,你說我怎么就攤上這事械巡。” “怎么了饶氏?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵讥耗,是天一觀的道長。 經(jīng)常有香客問我疹启,道長古程,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任喊崖,我火速辦了婚禮挣磨,結(jié)果婚禮上雇逞,老公的妹妹穿的比我還像新娘。我一直安慰自己茁裙,他們只是感情好塘砸,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晤锥,像睡著了一般掉蔬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矾瘾,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天女轿,我揣著相機與錄音,去河邊找鬼壕翩。 笑死蛉迹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的放妈。 我是一名探鬼主播北救,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼大猛!你這毒婦竟也來了扭倾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挽绩,失蹤者是張志新(化名)和其女友劉穎膛壹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唉堪,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡模聋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唠亚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片链方。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灶搜,靈堂內(nèi)的尸體忽然破棺而出祟蚀,到底是詐尸還是另有隱情,我是刑警寧澤割卖,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布前酿,位于F島的核電站,受9級特大地震影響鹏溯,放射性物質(zhì)發(fā)生泄漏罢维。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一丙挽、第九天 我趴在偏房一處隱蔽的房頂上張望肺孵。 院中可真熱鬧匀借,春花似錦、人聲如沸平窘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽初婆。三九已至蓬坡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磅叛,已是汗流浹背屑咳。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弊琴,地道東北人兆龙。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像敲董,于是被迫代替她去往敵國和親紫皇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容