第三方库解析

作者: 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