SDWebImage

  1. SDWebImage的簡(jiǎn)單介紹
    a) SDWebImage支持異步圖片下載+緩存,提供了UIImageView+WebCacha的分類,方便使用位岔。
    b) 圖片文件緩存的時(shí)間最長(zhǎng)是1周
    c) 內(nèi)存緩存使用的是NSCache
    d) 最大并發(fā)數(shù)是6,可以經(jīng)過(guò)屬性調(diào)整
    e) 支持GIF
    f) 緩存圖片的名稱使用MD5散列函數(shù)堡牡,對(duì)url進(jìn)行md5抒抬,結(jié)果是32個(gè)字符長(zhǎng)度的字符串。
    g) 接收到內(nèi)存警告怎么處理
    i. 接收到內(nèi)存警告通知執(zhí)行clearMemory方法晤柄,清理內(nèi)存緩存
    ii. 接收到應(yīng)用程序?qū)⒁K止通知擦剑,執(zhí)行clearDisk方法,清理磁盤(pán)緩存,將緩存的文件夾直接刪除惠勒,重新創(chuàng)建新的緩存文件夾赚抡。
    iii. 接收到進(jìn)入后臺(tái)通知,執(zhí)行backgroundCleanDisk方法纠屋,后臺(tái)清理磁盤(pán)
  2. SDWebImage的底層原理
    a) 從分類入口setImageWithURL涂臣,會(huì)先把展位圖顯示出來(lái)
    b) 然后進(jìn)入SDWebImageManage管理類,交給SDImageCache從緩存中查找圖片是否已經(jīng)下載
    c) 先從內(nèi)存圖片緩存中查找是否有圖片售担,找到有緩存就把圖片回傳到管理類在回傳到分類入口顯示
    d) 如果內(nèi)存中沒(méi)有該圖片的緩存肉康,生成操作添加到隊(duì)列從磁盤(pán)查找圖片文件
    e) 根據(jù)url的md5字符串,查找磁盤(pán)緩存圖片灼舍,如果找到則回主線程進(jìn)行結(jié)果的回調(diào),添加到內(nèi)存緩存中(空閑內(nèi)存過(guò)小涨薪,會(huì)先清空內(nèi)存緩存)
    f) 如果磁盤(pán)沒(méi)有讀取到圖片骑素,說(shuō)明所有緩存都沒(méi)有該圖片,則需要回調(diào)到管理類刚夺,生成下載管理器下載圖片
    g) 下載圖片是又NSURLConnetction來(lái)做献丑,實(shí)現(xiàn)了相關(guān)的代理判斷圖片下載狀態(tài)和下載進(jìn)度。
    h) 圖片數(shù)據(jù)下載完成后侠姑,會(huì)交給SDWebImageDecoder做圖片解碼處理创橄,這里是一個(gè)隊(duì)列操作,不會(huì)拖慢主線程
    i) 解碼完成莽红,會(huì)到管理類妥畏,進(jìn)行圖片的緩存到內(nèi)存和磁盤(pán)的操作,最終回到分類顯示出圖片
    j) 在SDWebCache初始化的時(shí)候安吁,會(huì)注冊(cè)消息通知醉蚁,在內(nèi)存警告和后臺(tái)的時(shí)候清理內(nèi)存緩存,應(yīng)用結(jié)束的時(shí)候清理過(guò)期的圖片鬼店。
  3. SDWebImage庫(kù)的作用:
    a) UIImageView(WebCache)分類网棍,入口封裝
    b) SDWebImageManager 對(duì)圖片的管理中繼站,向下調(diào)用緩存(SDWebCache)和網(wǎng)絡(luò)下載(SDWebImageDownloader)操作妇智,已接響應(yīng)他們的回調(diào)
    c) SDImageCache根據(jù)url進(jìn)行了內(nèi)存和磁盤(pán)的兩種存儲(chǔ)和讀取操作滥玷,以及一些緩存的清理操作
    d) SDWebImageDownloader根據(jù)URL向網(wǎng)絡(luò)下載圖片數(shù)據(jù)等操作
    e) SDWebImageDecoder,異步對(duì)圖片進(jìn)行一次解壓巍棱,能夠提高效率惑畴。
  4. SDWebImage怎么封裝
    a) 在UIImageView分類封裝2個(gè)方法,下載圖片的方法和占位圖的
    b) 常用的還有封裝一個(gè)回調(diào)下載圖片狀態(tài)和進(jìn)度的《下載成功航徙,下載失敗桨菜,下載進(jìn)度》
  5. SDWebImage和YYWebImage對(duì)Gif圖片展示的內(nèi)存、CPU使用分析
    a) SDWebImage內(nèi)存暴漲,CPU占用低
    b) YYWebImage內(nèi)存低了倒得,CPU居高不下
    c) SDWebImage是把GIF所有的圖片都先加載到內(nèi)存中泻红,通過(guò)animatedImageWithImages的方式播放動(dòng)畫(huà)。這樣的好處就是霞掺,播放時(shí)直接從內(nèi)存中讀取資源就好了谊路。典型的以空間換取流暢度
    d) YYWebImage的處理方式正好相反,讀取Gif需要展示的當(dāng)前image菩彬,進(jìn)行解析展示缠劝,不用為gif的每一張圖片開(kāi)辟空間,每次都是讀取一張image就好了骗灶。以速度換空間惨恭。
    e) 后期YYWebImage好像解決了這個(gè)cpu高占用的問(wèn)題,使用了一個(gè)自定義的UIImageView 耙旦,YYAnimatedImageView來(lái)播放GIF
    f) 具體使用哪個(gè)脱羡,就需要根據(jù)不同的業(yè)務(wù)需求進(jìn)行決定了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末免都,一起剝皮案震驚了整個(gè)濱河市锉罐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绕娘,老刑警劉巖脓规,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異险领,居然都是意外死亡侨舆,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)绢陌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)态罪,“玉大人,你說(shuō)我怎么就攤上這事下面「淳保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵沥割,是天一觀的道長(zhǎng)耗啦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)机杜,這世上最難降的妖魔是什么帜讲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮椒拗,結(jié)果婚禮上似将,老公的妹妹穿的比我還像新娘获黔。我一直安慰自己,他們只是感情好在验,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布玷氏。 她就那樣靜靜地躺著,像睡著了一般腋舌。 火紅的嫁衣襯著肌膚如雪盏触。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天块饺,我揣著相機(jī)與錄音赞辩,去河邊找鬼。 笑死授艰,一個(gè)胖子當(dāng)著我的面吹牛辨嗽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淮腾,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼糟需,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了来破?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忘古,失蹤者是張志新(化名)和其女友劉穎徘禁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體髓堪,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡送朱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了干旁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶沼。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖争群,靈堂內(nèi)的尸體忽然破棺而出回怜,到底是詐尸還是另有隱情,我是刑警寧澤换薄,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布玉雾,位于F島的核電站,受9級(jí)特大地震影響轻要,放射性物質(zhì)發(fā)生泄漏复旬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一冲泥、第九天 我趴在偏房一處隱蔽的房頂上張望驹碍。 院中可真熱鬧壁涎,春花似錦、人聲如沸志秃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洽损。三九已至庞溜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碑定,已是汗流浹背流码。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留延刘,地道東北人漫试。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像碘赖,于是被迫代替她去往敵國(guó)和親驾荣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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