Facebook Fresco体验 (一)

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.csdn.net/detail/ttdevs/8582171


参考:

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


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值