Fresco 源码分析(序)
1. 为什么要写这个分析的博客
其实关于Fresco的相关内容,大家上网搜索,一般可以找到一大推,但是为什么我还要写关于这个的呢,因为在网上搜索中文和英文的关于fresco的相关知识时,大家只是潜在的将fresco官方的文档做了一下变向的描述,关于这个内容,讲解比较详细的是在csdn中某用户的博客(第一篇的链接: "Fresco源码解析-Hierarachy-View-Controller" http://blog.csdn.net/feelang/article/details/45083067 ) ,还是专栏,前面几篇分析的挺精彩的,可惜到后面没有了,已经两月有余,此博主还是停留在ImagePipeLine的第一篇分析上,看后面的博客,此博主对其他内容感兴趣了,无语...看来只有自己动手了,简单用了一下fresco,然后用了两天时间,边做分析,边做笔记(老了,没办法,东西那么多,看了一会儿就忘了),我也不是藏着掖着的人,分享给大家
2. 本博客分析的内容
本来打算从如下的几个内容给大家做分享
2.1 Fresco为什么会出现
2.2 Fresco的优点
2.3 Fresco的常见概念
2.4 Fresco的简单使用
2.5 Fresco的内容
2.6 Fresco的架构
2.7 Fresco中设计到的设计模式
但是关于2.1~2.4的内容大家在网上随处便可以发现这些博客,为了方便大家查找,我将这些链接放置到此处,便于大家查找
- Fresco gitub地址: https://github.com/facebook/fresco
- Fresco 简介:https://code.facebook.com/posts/366199913563917
(***哦,推荐使用红杏:http://honx.in/i/U0Ek74Ko1zG8ixx0) - Fresco的简单使用和相关概念 :http://fresco-cn.org/docs/index.html
备注: 学习Fresco源码,安装安卓studio,安装ndk后,下载github上的完整代码,导入工程,这是一个耗时的工程,等待同步gradle完成后,你会发现Fresco-master的工程,真的很大,以我这里的Fresco 0.5.x的版本,同步下来后,大小是270M...想说爱你真的很不容易
3. 分析前奏
在看到这里的时候,我默认你已经将Fresco的工程已经成功导入,并且自己已经用Fresco写了一个简单的demo,并且可以正常运行的,另外,已经查看了“Fresco的简单使用和相关概念”的链接,只是这样的话,可能还不能明显看到Fresco的优势,建议你用Fresco的工程运行里面的module :samples下的comparsion,对比ImageLoader和Fresco以及其他的图片加载框架,优势会明显的体现出来的。
在第二点中我们已经提到要按照2.1到2.7分析,但是前几个点已经略去,那么我们直接从第五点开始说,说着说着也会顺便提到2.1到2.4的内容
备注: 在学习Fresco的源码也是需要一点设计模式的基础的,因为这个Fresco的源码中处处涉及到设计模式
从下篇开始正式的分析Fresco
下一篇链接地址: http://www.cnblogs.com/pandapan/p/4634563.html
安卓源码分析群: Android源码分析QQ1群号:164812238
Fresco 源码分析(序)的更多相关文章
- Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通
4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续 上节中我们提到两个核心的步骤 obtainDataSourceSu ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...
- Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeHierachy+DraweeController的分析
4.1.5.2 模型层DraweeHierachy继承体系以及各个类的作用 DraweeHierachy (I) --| SettableDraweeHierarchy (I) ------| Gen ...
- Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物
4.3 服务端的处理 备注: 因为是分析,而不是设计,所以很多知识我们类似于插叙的方式叙述,就是用到了哪个知识点,我们再提及相关的知识点,如果分析到了最后,我想想是不是应该将这个架构按照设计的方式,重 ...
- Fresco 源码分析(二) Fresco客户端与服务端交互(2) Fresco.initializeDrawee()分析 续
4.2.1.2 Fresco.initializeDrawee()的过程 续 继续上篇博客的分析Fresco.initializeDrawee() sDraweeControllerBuilderSu ...
- Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeView的分析
4. Fresco的内容 为了方便学习,我们先从使用结合官方的文档来分析 4.1 Fresco客户端的使用 在使用Fresco的使用,我们直接使用的是SimpleDraweeView这个类,然后在Ac ...
- Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容
我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的 ...
- Fresco 源码分析 —— 整体架构
Fresco 是我们项目中图片加载专用框架.虽然我不是负责 Fresco 框架,但是由本人负责组里的图片加载浏览等工作,因此了解 Fresco 的源码有助于我今后的工作,也可以学习 Fresco 的源 ...
- Fresco 源码分析(三) Fresco服务端处理(3) DataSource到Producer的适配器逻辑以及BitmapMemoryCacheProducer处理的逻辑
4.3.1.2.1 Producer和DataSource之间适配器处理的逻辑 还是从程序的入口开始说吧 CloseableProducerToDataSourceAdapter.create() 源 ...
随机推荐
- encodeURIComponent
<script type="text/javascript"> function show(){ var f="#wer中文测试"; f = enc ...
- SQL Server中一些有用的日期sql语句
SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DA ...
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能
述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- POJ - 3468 A Simple Problem with Integers(线段树区间更新,区间查询)
1.给出了一个序列,你需要处理如下两种询问. "C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000). "Q a b" ...
- 【POJ 3140】 Contestants Division
[题目链接] 点击打开链接 [算法] 树形DP ans = min{ | total - 2 * sum[k] | } (sum为以k为根的子树的权值和) [代码] #include <algo ...
- 服务器开发入门——理解异步I/O
对于服务器程序,I/O是制约系统性能最关键的因素.对于需要处理大量连接的高并发服务器程序,异步I/O几乎是不二的选择.Linux和Windows都为异步I/O构建了大量的基础设施.本文总结了一下Lin ...
- Mysql数据库的数据类型、索引、锁、事务和视图
Mysql数据库的数据类型.索引.锁.事务和视图 数据的类型 1)数据类型: 数据长什么样? 数据需要多少空间来存放? 系统内置数据类型和用户定义数据类型 2)MySql 支持多种列类型: 数值类型 ...
- 51nod 1244 莫比乌斯函数之和 【莫比乌斯函数+杜教筛】
和bzoj 3944比较像,但是时间卡的更死 设\( f(n)=\sum_{d|n}\mu(d) g(n)=\sum_{i=1}^{n}f(i) s(n)=\sum_{i=1}^{n}\mu(i) \ ...
- codeforces912E(折半搜索+双指针+二分答案)
E. Prime Gift E. Prime Gift time limit per test 3.5 seconds memory limit per test 256 megabytes inpu ...
- 【插件开发】—— 12 GEF入门
介绍 前面也简单的介绍了一下插件开发的相关知识,下面主要就介绍一下GEF的相关使用.由于最近使用到编辑器这部分的操作,因此就跳过其他的内容,先介绍下GEF的相关知识. 前文回顾 1 插件学习篇 2 简 ...