Android -- Fresco、Glide、Picasso的比较

昨天去面试,谈到了几个图片加载框架。Fresco;Glide;Picasso
面试官问起了那个框架更好一点,我说Glide吧,并说了几个在之前项目中实际应用的例子,和glide的一些原理。阐述了一下我的观点。
回到家总觉得是没有完全的阐述好我的观点,也是因为我没看过Fresco和Picasso的源码,只留心过glide的原理。因为水平有限,分析三个框架的源码不太现实,我觉得还是要拿出数据来证明(碰巧最近待业在家)。

加载资源:
每一种框架都分别尝试了2种图片
第一张图是501x428、找了一个平时项目中较平均的分辨率吧
http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg
第二张图是1440*2560、整一个大一点的图片加载试试看吧
http://bizhi.cnanzhi.com/upload/bizhi/2014/1202/14175104904742.jpg

1、先说Fresco

配置按照官方的教程,姑且称之为0配置吧:

1
2
3
4
5
public class MyApplication extends Application {@Override public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}

1
2
3
4
5
6
<com.facebook.drawee.view.SimpleDraweeView
android:layout_centerInParent="true"
android:id="@+id/my_image_view"
android:layout_width="130dp"
android:layout_height="130dp"
/>
1
imageView.setImageURI("xxxx");

这是加载图片的例子
加载第一张图片时看一下内存的使用率

Paste_Image.png

比较大分辨率的图片

Paste_Image.png

2、Glide

glide 的使用相对来说更为简单

1
2
3
4
Glide
.with(this)
.load("http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg")
.into(imageView);

Paste_Image.png

Paste_Image.png

3、Picasso

就使用上来讲,Picasso和Glide差别很小了

1
2
3
4
Picasso
.with(this)
.load("http://www.youxiping.com/data/attachment/portal/201509/11/144756yp966fkf07173v4z.jpg")
.into(imageView);

Paste_Image.png
Paste_Image.png

3、最后看下依赖包大小

Paste_Image.png

Paste_Image.png

Paste_Image.png