Facebook Fresco体验 (一)

Android图片库-Fresco Fresco特征 Fresco出产于facebook公司,也可以发生facebook公司的Android框架的图片加载库都是使用的Fresco,比如ReactNative。Fresco很明显的特点就是类似于MVC的结构,DraweeView作为View层,是图片的真正渲染层,DraweeHierarchy负责组件维护最终的Drawable对象,相当于是M,而DraweeControl... 阅读详情

About Fresco


Fresco is a powerful system for displaying images in Android applications. It takes care of image loading and display so you don't have to.

Fresco's image pipeline will load images from the network, local storage, or local resources. To save data and CPU, it has three levels of cache; two in memory and another in internal storage.
Fresco's Drawees show a placeholder for you until the image has loaded and automatically show to the image when it arrives. When the image goes off-screen, it automatically releases its memory.
Fresco supports Android 2.3 (Gingerbread) and later.


Fresco 一个强大的Android图片显示系统。图片的加载和显示交由它负责,我们就不需要关心了。这两句足以说明他的牛逼——有几个插件感这么自己的称自己为System的。当然,Facebook出品,必属精品。

简单的了解了,貌似确实非常拉风,把我们平时需要做的基本上都做了,包括图片的加载,图片的显示,内存的管理等。使用之前,先来体验下他的强大。


一、下载源代码


git clone git@github.com:facebook/fresco.git

注:

github:https://github.com/facebook/fresco

gradle依赖:compile 'com.facebook.fresco:fresco:0.2.0+'


二、运行demo


这个稍微有点麻烦,如果想直接运行这个这个项目,需要我们去配置NDK的环境(MAC):

1、下载NDK:http://developer.android.com/tools/sdk/ndk/index.html

这个地址直接列出了不同平台和版本的NDK环境下载地址,这里选择了Mac OS X 64-bit:android-ndk-r10d-darwin-x86_64.bin,MD5:cb101e1e62d56ea75b215f6bc6c27fae

2、NDK安装

在你选择下载的时候,下载页面会自动定位到如何安装的位置,具体流程为:

a、打开终端,定位到你下载的文件位置,

b、修改文件的权限:chmod a+x android-ndk-r10d-darwin-x86_64.bin

c、安装(解压):./android-ndk-r10d-darwin-x86_64.bin。这样我们就可以得到解压后的文件——一个名为android-ndk-r10d的文件夹。为了方便管理,建议将此文件夹copy到和android sdk管理同样方便的位置。

d、配置环境变量:在环境变量中添加ndk-build目录,具体为“export PATH=${PATH}:${NDK_HOME}:${NDK_HOME}/ndk-build:”,其中NDK_HOME为刚解压的ndk目录位置。分享下我们的环境变量设置:

export GRADLE_HOME=$HOME/android/gradle/gradle-2.2.1
export ANDROID_HOME=$HOME/android/android_sdk_mac
export NDK_HOME=$HOME/android/android-ndk-r10d
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home";
export PATH=${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${JAVA_HOME}/bin:${JAVA_HOME}/lib:${GRADLE_HOME}/bin:${NDK_HOME}:${NDK_HOME}/ndk-build:

配置好之后记得source下,不然下次启动才生效


3、意外

 
Execution failed for task ':imagepipeline:ndk_build_gifimage'.

如果你遇到这个错误,多半是找不到ndk环境导致的,不出意外,配置了上面的环境变量就可以解决了。下面在简单的分析下:

打开源码下"imagepipeline"这个model的build.gradle文件,有这样一个函数:def makeNdkTasks(String name){...},其中又有这样一行:commandLine getNdkBuildFullPath(),定位到这个函数,你会发现下面的代码:

def getNdkBuildFullPath() {
    // we allow to provide full path to ndk-build tool
    if (hasProperty('ndk.command')) {
        return property('ndk.command')
    }
    // or just a path to the containing directiry
    if (hasProperty('ndk.path')) {
        def path = property('ndk.path')
        if (!path.endsWith(File.separator)) {
            path += File.separator
        }
        return path + getNdkBuildName()
    }
    // if none of above is provided, we assume ndk-build is already in $PATH
    return getNdkBuildName()
}

def getNdkBuildName() {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        return "ndk-build.cmd"
    } else {
        return "ndk-build"
    }
}
虽然写不来这段代码,但是我们可以理解他的大概逻辑:先是尝试去“ndk.command”和“ndk.path”这两个地方查找ndk环境,当找不到时返回ndk-buil这个字符串(mac),这个时候肯定需要我们的环境变量中存在。


有了上面的操作,这个时候我们就可以顺利的build这个项目,最后附个build之后的APK,供体验。

下载:http://download.youkuaiyun.com/detail/ttdevs/8582171


参考:

https://github.com/facebook/fresco/issues/5


Android之Fresco(facebook的强大Android图片加载的框架) Fresco是Facebook开源Android平台上一个强大的图片加载库。 立即下载

相关推荐

stata 代码实现熵值法计算 含常见问题解答

2.标准化①正向指标②负向指标。

m0_74825360的博客 1219

facebook强大的图片加载工具Fresco,比imageload加载速度快

关于 Fresco Fresco 是一个强大的图片加载组件。 Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。 Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。

Mr_ladeng的博客 2019

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

Facebook 开源项目 Fresco 使用简介

1. 在Gradle中添加依赖 dependencies {   compile 'com.facebook.fresco:fresco:0.1.0+' } 2. 在Application 初始化时调用 Fresco.initialize(context); 3. 在xml布局文件中, 加入命名空间: xmlns:fresco="http://schemas.androi

hkg1pek的专栏 4173

Tecplot进阶:巧用公式与多Frame对比,实现CFD多工况数据差异的可视化分析

本文详细介绍了如何利用Tecplot进行CFD多工况数据差异的可视化分析,通过公式计算和多Frame对比,实现变量差值自动计算、多视图同步展示和差异量化统计。文章还提供了数据准备、基础操作、实战技巧和常见问题解决方案,帮助工程师高效完成CFD后处理工作。

weixin_29227425的博客 531

基于继电器与三极管的自动水泵控制器DIY:从电路原理到PCB制作实战

继电器作为一种利用电磁原理实现电路通断控制的电气开关,其核心价值在于通过小电流信号控制大电流负载,实现强弱电之间的安全隔离。在自动化控制领域,继电器常与三极管等半导体器件配合,构成驱动电路,将微弱的传感器信号放大,从而可靠地控制电机、水泵等执行机构。这种组合技术广泛应用于工业控制、智能家居及各类电子DIY项目中,例如实现水箱水位的自动检测与控制。本文将以一个典型的自动水泵控制器项目为例,深入剖析如何利用继电器与三极管搭建水位检测与驱动电路,并详细讲解从电路设计、PCB自制(热转印法)到系统调试的完整工程实践

weixin_31774841的博客 348

Fresco架构的简单使用

一、1.Fresco介绍 Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。相对于ImageLoader,拥有更快的图片下载速度以及可以加载和显示gif图等诸多优势,是个很好的图片框架。2.Fresco特点1)内存管理...

fuge2008的博客 2004

深入Linux网络子系统:STMMAC驱动如何通过MDIO总线与PHY芯片“对话”

本文深入解析了Linux网络子系统中STMMAC驱动通过MDIO总线与PHY芯片的通信机制。详细介绍了MDIO总线的注册流程、PHY设备的绑定机制以及设备树配置,帮助开发者理解MAC控制器与PHY芯片的协作基础,优化网络通信性能。

weixin_26897585的博客 449

如何快速掌握Facebook Fresco库:Android图像加载与内存优化的终极指南

在Android应用开发中,高效的图像加载和内存管理一直是开发者面临的重要挑战。Facebook Fresco库作为一款强大的Android图像管理工具,专为解决图像加载性能和内存占用问题而设计。它不仅能高效加载网络、本地存储的图片,还能智能管理图像内存,有效避免OOM(内存溢出)错误,让你的应用在处理大量图片时依然保持流畅运行。 ## 🚀 Fresco库的核心优势:为何选择它? Fresc

gitblog_00077的博客 958

CUDA编程 - Nsight system & Nsight compute 的安装和使用 - 学习记录

在 cuda 编程中,经常会用到 Nsight system 和 Nsight compute 进行性能分析等,下面做个学习总结。本篇包括安装和常用分析思路总结,具体实践操作总结会放在下一篇博客。

点云算法工程师 1万+

maxim max96712+max96717调试笔记

mxxim max96712 和max96717调试笔记

libuping2023的博客 1万+

FaceBook开源图片加载框架Fresco简单介绍

一、Fresco编译和引入工程        Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。之前看大家在QQ群和各个社区都在讨论Fresco,都说性能非常好,心里禁不住诱惑,所以决定尝试一下。前途是光明的,道路是曲折的,Fresco的引入出现各种问题,折腾了我好些时间。        Fresco在git

small-dream的博客 6318

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Fresco+RecyclerView初体验

如今网上已经有好多图片加载框架:Volley、Imageloader、Picasso、fresco、glide。除了glide其他的我多多少少都用过,但是fresco无疑是最强大的一个图片加载框架,fresco是facebook推出的一款图片加载框架,它的诸多特性:内存管理、图片加载、以及图片的的渐进式加载和动图加载使得它一经推出收到许多公司的青睐。 fresco主要主要由三部分组成:Drawe

Mr_lu_code的专栏 2887

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Facebook图片缓存框架 Fresco 总结

最近Facebook图片缓存框架 Fresco在圈内传播的比较多,我也关注了。现在把比较好的帖子和需要注意的地方分享给大家。 1.frescon 比较nb的功能 我觉得比较nb的地方有里两个一是使用android 的native heap,比较少使用Java heap;二是支持gif格式。 2.fresco 作者讲述的框架的原理  这篇文章中 frescon 作者讲解了框架中使用的图片缓存

lixiangers的专栏 3517

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Facebook推出强大Android图片库Fresco :Fresco下载编译,及运行 sample

早先因这篇介绍Fresco文章:得知Fresco,现五一有时间就下来运行看看,顺便做个记录。该文章结尾相关地址提示:Fresco官网+FrescoGitHub托管大家做图片异步加载,很多都是用到com.nostra13.universalimageloader:universal-image-loader这个jar包处理,效果不错,可内存释放问题还是不够好。一看到Facebook推出这个Fresco

铁木的专栏 2607

商城之Fresco(FaceBook)

1.Fresco文档:   http://fresco-cn.org/docs/getting-started.html    GitHub        :   https://github.com/facebook/fresco 2.  3.使用 布局: <RelativeLayo

LLLigj博客 747

FaceBook推出的Android图片加载库Fresco

关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java 在Android设备上面,快速高效的显示图片是极为重要的。过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题。图片太大,但是手机的内存却很小。每一个像素的R、G、B和alpha通道总共要占用4byte的空间。如果手机的屏幕是480*800,那么一张屏幕大

213

Android Fresco的缓存

import android.app.Application; import com.facebook.cache.disk.DiskCacheConfig; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.imagepipeline.core.ImagePipelineConfig; public ...

qq_39419931的博客 608

Facebook推出强大Android图片库Fresco 自动释放内存 图片缓存 内存益处

Facebook推出强大Android图片库Fresco 自动释放内存 图片缓存 内存益处

随意而然的专栏 1875

Facebook Fresco图片加载库:SimpleDraweeView使用详解

SimpleDraweeView是Facebook Fresco图片加载库中的核心视图组件,专门用于在Android应用中显示图片。它提供了丰富的功能和高度可定制的选项,使开发者能够轻松实现各种图片显示需求。 ## 基础使用 ### XML布局配置 在XML布局文件中使用SimpleDraweeView非常简单: ```xml ...

gitblog_00782的博客 586

一、Android 图片加载框架 Fresco 入门

前言:略 如果仅仅需要下载并显示图片,显示一个占位符

blue519779764的专栏 834

Fresco图片库研读分析

Fresco是Facebook推出的一款用于Android应用的强大图片库,相对于其他主流的图片库而言,Fresco的主要优秀特性的在于缓存和内存控制上,当然有利就有弊,Fresco的代码量大,方法数较多,阅读难度比较大,下面我们就从三个方面入手来分析Fresco 一、初始化配置 二、图片的加载与缓存 三、图片的绘制显示 关于Fresco中的一些概念和使用方法,见Fresc

lpw14的专栏 1万+

RN: android 显示 gif compile 'com.facebook.fresco:fresco

打开这个文件: 项目\android\app\build.gradle 亲测好用!除了这个1.9.0\1.3.0\0.14.0\0.13.0\0.9.0\0.7.0均不好用~~~ dependencies 添加compile 'com.facebook.fresco:fresco:1.5.0'和compile 'com.facebook.fresco:animated-gif:1.5.0' ...

前台技术 1911

浅析fresco

fresco是facebook主导的一个开源图片缓存库,从它提供的示例程序comparison来看,fresco貌似比其他的几个目前android主流的图片缓存库(glide,picasso,uil等)更快更节省内存。接下来就看看它到底是如何做到的。注:本文分析基于0.8.1版本。背景知识 lru与SoftReference那些年的爱恨情仇:很久很久以前,android的内存缓存还用SoftRefe

sgwhp的专栏 5483

Facebook推出强大Android图片库Fresco

https://github.com/facebook/fresco

ahwen_2008的专栏 239
上一篇: android Toobar的一个简单封装
下一篇: 让RecyclerView支持加载更多(Endless RecyclerView)
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值