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() 源 ...
随机推荐
- ImageLoader实现图片异步载入
ImageLoader是一个广泛使用的图片库,在向网络请求图片时.使用imageView和smartView常会产生outofmemory错误,这时ImageLoader能够起到非常大的作用.主要有例 ...
- 解决Struts配置文件里无提示信息的问题
(1)在struts2配置文件编写的时候.有可能无法提示所有信息,在配置文件里打个"<" 后,并没有不论什么的提示信息(使用快捷键Alt+/ 也不提示) 原因是下边的 &q ...
- setTimeout不可靠的修正办法及clearTimeout
javascript里的这两个定时器函数,大家一定耳熟能详: setTimeout("函数()",毫秒)就是开启一个计时器,指定毫秒后执行该函数一次. 有关定时器,javascri ...
- YTU 2945: 编程:五元向量的运算
2945: 编程:五元向量的运算 时间限制: 1 Sec 内存限制: 128 MB 提交: 151 解决: 85 题目描述 用习惯了的运算符操作新定义的类对象,这是OO方法给我们带来的便利.下面要 ...
- Android开发之自定义对话框
由于系统自带的对话框不好看,于是本人就自定义了一个对话框,以后有类似的就可以直接使用啦.先上效果图: 1,布局文件dialog_clear_normal.xml <?xml version=&q ...
- silverlight DataGrid 显示篇
silverlight DataGrid 显示篇 分类: Silverlight2012-05-12 21:55 693人阅读 评论(0) 收藏 举报 datagridsilverlightbindi ...
- 并不对劲的bzoj4651:loj2084:uoj220:p1173:[NOI2016]网格
题目大意 有一个\(n*m\)(\(n,m\leq10^9\))的网格,每个格子是空地或障碍(\(障碍数\leq10^5\)) 定义两块空地连通,当且仅当它们是"相邻的两块空地"或 ...
- 【SDOI 2014】 旅行
[题目链接] 点击打开链接 [算法] 树链剖分 每个宗教建一棵线段树,注意数据量大,要动态开点 [代码] #include<bits/stdc++.h> using namespace s ...
- hdu2089(数位DP 递推形式)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 杂项-Java-百科:jar
ylbtech-杂项-Java-百科:jar 在软件领域,JAR文件(Java归档,英语:Java ARchive)是一种软件包文件格式,通常用于聚合大量的Java类文件.相关的元数据和资源(文本.图 ...