图片文件缓存的时间有多长:1周_maxCacheAge = kDefaultCacheMaxCacheAgestatic const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week内存缓存是用什么实现的?NSCache最大并发数是多少?_downloadQueue.maxConcurrentOperationCount = 6;是程序固定死了,可以通过属性进行调整!最大超时时长是多少_downloadTimeout = 15.0;SDWebImage 支持动图吗?GIF#import[UIImage animatedImageWithImages:images duration:duration];
SDWebImage是如何区分不同格式的图像的
根据图像数据第一个字节来判断的!
PNG:压缩比没有JPG高,但是无损压缩,解压缩性能高,苹果推荐的图像格式!
JPG:压缩比最高的一种图片格式,有损压缩!最多使用的场景,照相机!解压缩的性能不好!
GIF:序列桢动图,特点:只支持256种颜色!最流行的时候在1998~1999,有专利的!
WebP:WebP (发音"weppy"),是一种同时提供了有损压缩与无损压缩的图片文件格式,派生自图像编码格式VP8
在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%
WebP格式图像的编码时间“比JPEG格式图像长8倍”
目前不是所有的浏览器支持 WebP 格式
缓存图片的名称是怎么确定的!
md5
如果单纯使用 文件名保存,重名的几率很高!
使用 MD5 的散列函数!对完整的 URL 进行 md5,结果是一个 32 个字符长度的字符串!
内存警告是如何处理的!
利用通知中心观察
- UIApplicationDidReceiveMemoryWarningNotification 接收到内存警告的通知
执行 clearMemory 方法,清理内存缓存!
- UIApplicationWillTerminateNotification 接收到应用程序将要终止通知
执行 cleanDisk 方法,清理磁盘缓存!
- UIApplicationDidEnterBackgroundNotification 接收到应用程序进入后台通知
执行 backgroundCleanDisk 方法,后台清理磁盘!
通过以上通知监听,能够保证缓存文件的大小始终在控制范围之内!
clearDisk 清空磁盘缓存,将所有缓存目录中的文件,全部删除! 实际工作,将缓存目录直接删除,再次创建一个同名空目录!