Skip to content

desmond1121/Fresco-Source-Analysis

Folders and files

NameName
Last commit message
Last commit date
Mar 18, 2018
Mar 18, 2018
Mar 18, 2018
Mar 18, 2018
Mar 18, 2018
Mar 18, 2018
Mar 18, 2018

Repository files navigation

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

About

中文的Fresco源码解读

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published