第三方库解析

作者: Jimmy_L_Wang | 来源:发表于2019-06-26 22:38 被阅读0次

AFNetworking

AF框架.png

主要类关系

类关系图.png

各个类的功能

AFURLSessionManager主要负责哪些工作?

  • 创建和管理NSURLSession,NSURLSessionTask。
  • 实现NSURLSessionDelegate等协议的代理方法
  • 引入AFSecurityPolicy保证请求安全
  • 引入AFNetworkReachabilityManager监控网络状态。

SDWebImage

架构简图:

sd架构图.png

加载流程

加载流程.png

ReactiveCocoa

RAC是否了解?

RAC是一个函数响应式编程的库,可以订阅一个信号

RACSignal

Signal.png

怎样理解信号?

RACSignal继承自RACStream

stream.png

信号代表一连串的状态

signal02.png

在状态改变时,对应的订阅者RACSubscriber就会收到通知执行响应的指令。

订阅

RACSubscriber

订阅过程.png 订阅原理.png

AsyncDisplayKit

提升iOS界面渲染性能的一个框架

主要处理哪些问题

  • Layout-解决布局的耗时运算(从主线程迁移到子线程,来减少主线程的时间)
    • 文本宽高计算
    • 视图布局计算
  • Rendering
    • 文本渲染
    • 图片解码
    • 图形绘制
  • UIKit对象的处理
    • 对象创建
    • 对象调整
    • 对象销毁

主要通过减轻主线程的压力,来把更多的事情挪到子线程去做,就挪到子线程去处理。

基本原理

asdk原理.png

针对ASNode的修改和提交,会对其进行封装并提交到一个全局容器当中;

ASDK也在RunLoop中注册一个Observer

当RunLoop进入休眠前,ASDK执行该Loop内提交的所有任务。

总结

AFNetworking的整体结构是怎样的?

SDWebimage框架是怎样加载图片的?

RAC的信号订阅是什么意思?

相关文章

网友评论

    本文标题:第三方库解析

    本文链接:https://www.haomeiwen.com/subject/zlckcctx.html