中文的Fresco源码解读
Switch branches/tags
Nothing to show
Clone or download

README.md

Fresco-Source-Analysis

中文的Fresco源码解读,分析版本:0.7.0。欢迎Issue讨论!

导读

本系列文章目的是分析源码,具体使用方法虽然会涉及,但不多。你应该在对Fresco的使用方法有一定了解之后再来阅读这些文章,推荐Fresco中文文档来了解它的使用方法。

Fresco中几个基本设计模式

Wiki-设计模式中介绍了Fresco中用到的几个基本设计模式,供读者参考。

初级分析:DraweeView显示图层树的过程

这部分的内容针对使用者会接触到的几个部件:DraweeHierarchy、DraweeController、DraweeView、ImageRequest等,介绍这些组件的功能,分析它们之间的关系。具体参考以下章节:

进阶分析:图像请求与缓存

这部分的内容从DataSource的功能出发,探索与分析Fresco底层缓存、加载数据的原理实现。具体参考以下章节:

待完成

  • Fresco源码分析(7) - 解码

Fresco的解码能力是它的一大特色,它会根据不同平台放置解析完成的图片,根据不同的渠道(网络、本地)处理渐进式JPEG图。由于作者的能力与时间有限,在图像解码方面的知识储备不足,解码部分暂未完成,有能力的朋友可以联系我一起进行分析,谢谢!

###总结

作者总结了Fresco的架构图如下:

Fresco

其中:

  • 表现层 维持图片层次DraweeHierarchy并将其绘制到屏幕上;
  • 控制层 提供缓存查找、图片获取及处理的接口,通过DraweeController来控制表现层的DraweeHierarchy,它是表现层与核心层之间的纽带;
  • 核心层 负责各类缓存、解码、数据获取的逻辑,将数据通过Producer传达给控制层的Consumer。

如有错误,希望指正,谢谢!

Authored by Desmond