SDWebImage源码理解

96
南华coder
2017.11.04 22:01* 字数 643

一、写在开头

  • 虽然网上有很多关于SDWebImage源码的分析文章,但这些都不是我自己的理解,他们或许能帮助我解决遇到的问题,也可能让我懈怠,不再去深入探究。SDWebImage源码理解中是我对SDWebImage(4.1.2版本)源码的体会理解,它并不拘泥于具体的API,而是从我的角度,去理解SDWebImage的源码设计。

  • 由于本人的技术能力有限,可能会在理解上有一些错误,如果大家发现有问题,欢迎留言,批评指正。

二、SDWebImage概述

  • 在SDWebImage库中,主要的类有SDWebImageDecoder(图片解码)、SDImageCache(图片的缓存处理)、SDWebImageDownloader(图片下载器 )、SDWebImageDownloaderOperation(图片下载操作)和 SDWebImageManager(SDWebImage的管理类)。

  • SDWebImageManager持有SDWebImageDownloaderSDImageCache单例,负责调度图片的异步下载、缓存和获取;SDWebImageDownloader负责异步图片下载任务的调度,它维持了一个图片下载队列,队列中管理若干SDWebImageDownloaderOperation(NSOperation的子类)下载任务,封装了图片的下载任务,支持并发操作;SDImageCache负责下载图片的缓存和读取;SDWebImageDecoder负责图片的解码工作;

  • 总之,SDWebImage库提供了一整完善的机制,保证网络图片下载和存取。

三、源码文章

文章从图片的解码缓存下载三个角度去理解SDWebImage源码。

1、图片的解码
2、图片的缓存
3、图片的下载
  • 具体文章见 篇3:SDWebImage源码看图片下载(还在码字中...)

  • 建议:在理解了SDWebImage中的图片下载后,可以看一下AFNetworking,了解下最主流的网络框架库如何设计(后面有时间也会介绍)。

End

  • 我是南华coder,曾经梦想写诗走天涯,而今埋头苦思忙coder。
SDWebImage源码理解