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() 源 ...
随机推荐
- WebService(2)-XML系列之用Stax操作Xml
源代码下载:链接: http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:利用Stax处理xml文档 一.读取xml 1.基于光标的查找 核心:X ...
- 访问某类型的元数据的方式-TypeDescriptor 类
.NET Framework 提供了两种访问某类型的元数据的方式:通过 System.Reflection 命名空间中提供的反射 API,以及通过 TypeDescriptor 类.反射是可用于所有类 ...
- 电子设计省赛--PID
//2014年4月17日 //2014年6月20日入"未完毕"(未完毕) //2014年6月21日 一開始还以为是多难的算法.事实上就是个渣渣. 当然PID实践中应该会非常难. 另 ...
- IIS7添加虚拟目录映射另一台服务器的共享文件夹
现状: 一台Windows Server2008 Web服务器 A,一台Windows Server2003 文件服务器 B,需要在A中IIS添加对B的Web访问 方法: 1.A中添加和B相同的账号, ...
- (6)servlet-创建一个servlet类
1,在项目的src目录下,右键[New]-[Servlet] 2,在弹出窗口中填写信息 Package:所在包名 Name:servlet的类名 Which method stubs would yo ...
- Jackson 框架的高阶应用
Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架.Jackson 社 区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson ...
- android编译打包(用ant脚本打包)
为了可以实现自动化打包,下面我介绍一下如何用ant工具来打包android项目: 直接上build.xml文件源码: <?xml version="1.0"?> < ...
- git 一次删除所有删除的文件
/*********************************************************************************** * git 一次删除所有删除的 ...
- 并不对劲的图论专题(三):SPFA算法的优化
1.bzoj1489-> 这是个新套路. 我们希望找到最小的x,那么可以二分x,然后判断是否存在圈的边权的平均值小于等于x. 设圈的边权依次为w1,w2,w3,…,wk,平均值为p, 则有p= ...
- [Usaco2017 Dec] A Pie for a Pie
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5140 [算法] 最短路 时间复杂度 : O(N^2) [代码] #include&l ...