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源码,安装安卓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 源码分析(序)的更多相关文章

  1. Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通

    4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续 上节中我们提到两个核心的步骤 obtainDataSourceSu ...

  2. Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题

    4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...

  3. Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeHierachy+DraweeController的分析

    4.1.5.2 模型层DraweeHierachy继承体系以及各个类的作用 DraweeHierachy (I) --| SettableDraweeHierarchy (I) ------| Gen ...

  4. Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物

    4.3 服务端的处理 备注: 因为是分析,而不是设计,所以很多知识我们类似于插叙的方式叙述,就是用到了哪个知识点,我们再提及相关的知识点,如果分析到了最后,我想想是不是应该将这个架构按照设计的方式,重 ...

  5. Fresco 源码分析(二) Fresco客户端与服务端交互(2) Fresco.initializeDrawee()分析 续

    4.2.1.2 Fresco.initializeDrawee()的过程 续 继续上篇博客的分析Fresco.initializeDrawee() sDraweeControllerBuilderSu ...

  6. Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeView的分析

    4. Fresco的内容 为了方便学习,我们先从使用结合官方的文档来分析 4.1 Fresco客户端的使用 在使用Fresco的使用,我们直接使用的是SimpleDraweeView这个类,然后在Ac ...

  7. Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容

    我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的 ...

  8. Fresco 源码分析 —— 整体架构

    Fresco 是我们项目中图片加载专用框架.虽然我不是负责 Fresco 框架,但是由本人负责组里的图片加载浏览等工作,因此了解 Fresco 的源码有助于我今后的工作,也可以学习 Fresco 的源 ...

  9. Fresco 源码分析(三) Fresco服务端处理(3) DataSource到Producer的适配器逻辑以及BitmapMemoryCacheProducer处理的逻辑

    4.3.1.2.1 Producer和DataSource之间适配器处理的逻辑 还是从程序的入口开始说吧 CloseableProducerToDataSourceAdapter.create() 源 ...

随机推荐

  1. python 2.*和3.*的变化

    1.urllib2是python自带的模块,在python3.x中被改为urllib.request,如 <span style="font-size:12px;">u ...

  2. CSVReader

    从网上找了一个开源的东东 ,网址 https://www.csvreader.com/

  3. asp.net编码解码的两篇文章

    http://www.cnblogs.com/freshman0216/p/4165949.html http://www.cnblogs.com/freshman0216/p/4172655.htm ...

  4. asp.net 实现搜索站内搜索功能

    首先有index和search 两个页面 index页面中有textbox1和button1两个控件 双击button1控件添加代码: protected void Button1_Click(obj ...

  5. Spring创建JobDetail的两种方式

    一.Spring创建JobDetail的两种方式 二.整合方式一示例步骤 1.将spring核心jar包.quartz.jar和Spring-context-support.jar导入类路径. 2.编 ...

  6. 【转】Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)

    一.线程的状态 Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态). New:新建状态,当线 ...

  7. 【转】Java并发编程:Synchronized及其实现原理

    一.Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法.Synchronized的作用主要有三个:(1)确保线程互斥的访问同步 ...

  8. mongoDB 安全权限访问控制

    MongoDB3.0权限 https://blog.csdn.net/leonzhouwei/article/details/46564141 转自:http://ibruce.info/2015/0 ...

  9. Tool:XMind

    ylbtech-Tool:XMind XMind 是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用.高效的可视化思维软件,强调软件的可扩展.跨平台.稳定 ...

  10. 洛谷P1111

    目录 题目 思路 Code 题目 戳 思路 利用Prim求该图的最小生成树,然后找到当中最大的那个数值输出,具体看代码吧,qwq. Code #include<iostream> #inc ...