这些答案完全是我个人的观点
毕加索是一个易于使用的图像加载器,同样适用于Imageloader。Fresco使用了不同的方法来加载图像,我还没有使用过它,但它看起来太像我更像是一个解决方案,从网络获取图像,然后缓存它们,然后显示图像。然后反过来像Picasso/Imageloader/Glide,对我来说更多的是在屏幕上显示图像,也从网络获取图像并缓存它们。
格莱德试图在某种程度上与毕加索互换。我认为当它们被创建时,Picasso的思维模式是遵循HTTP规范,让服务器决定缓存策略,缓存完整大小,并根据需要调整大小。Glide与遵循HTTP规范是一样的,但是通过做一些不同的假设来尝试拥有更小的内存占用,比如缓存调整大小的图像而不是完整大小的图像,以及使用RGB_565而不是RGB_8888显示图像。这两个库都提供了完全自定义的默认设置。
至于使用哪个库是最好的,真的很难说。Picasso, Glide和Imageloader是很受尊敬的和经过良好测试的库,它们都很容易使用默认设置。Picasso和Glide都只需要一行代码来加载图像,并具有占位符和错误图像。定制行为也不需要那么多工作。Imageloader也是一样,它也是一个比Picasso和Glide更老的库,但我没有使用过它,所以不能说太多关于性能/内存使用/自定义,但在github上查看自述文件给我的印象是,它也相对容易使用和设置。因此,在选择这3个库中的任何一个时,你都不会做出错误的决定,这更多的是个人喜好的问题。至于壁画,我的观点是,这是另一个facebook图书馆,所以我们必须看看它将如何为他们工作,到目前为止,它的记录不太好。我从2014年9月开始就不习惯facebook SDK,似乎他们在2014年10月就把第一个版本放在了mavenCentral上。所以我们还需要一段时间才能得到好的意见。
我认为这3个大的库之间没有显著的区别。唯一突出的是壁画,但这是因为它有不同的方法,是新的,没有经过战斗考验。
我是Fresco项目的工程师之一。显然我是有偏见的。
但你不必相信我的话。我们已经发布了一个示例应用程序,允许您并排比较五个库的性能——Fresco, Picasso, UIL, Glide和Volley Image Loader。你可以在我们的GitHub回购得到它。
我还应该指出,Fresco在Maven Central上可用,作为com.facebook.fresco:fresco。
com.facebook.fresco:fresco
Fresco提供了毕加索、UIL和Glide还没有的功能:
还有许多其他的(请参阅我们的文档),但这些是最重要的。
请注意,这是一个高度基于观点的问题,所以我不再制作峡湾,而是快速制作了一张表格
库比较很困难,因为在很多参数上,所有四个都做同样的事情,可能除了Fresco因为它有一大堆新的内存级别优化。所以,如果你想根据我的经验来比较某些参数,请告诉我。
由于使用Fresco最少,所以随着我继续在当前的漏洞中使用和理解它,答案可能会发生变化。used personally在一个完整的应用程序中至少使用过一次库。
used personally
*注-壁画现在支持GIF以及WebP动画
格莱德和毕加索都不是完美的。Glide加载图像到内存并进行缓存的方式比Picasso更好,Picasso让图像加载得更快。此外,它还有助于防止应用程序流行的OutOfMemoryError。GIF动画加载是Glide提供的一个致命功能。总之,毕加索解码的图像质量比格莱德更好。
我更喜欢哪一个?虽然我用毕加索画了这么长时间,但我必须承认我现在更喜欢格莱德。但我建议你将位图格式更改为ARGB_8888,让Glide先缓存全尺寸图像和调整大小的图像。剩下的会很好地完成你的工作!
RGB_565
+1毕加索调色板助手。
有一个帖子谈论了很多关于毕加索vs Glide 帖子
壁画 sources | off site
(-)
(+)
毕加索 sources | off site .
滑翔 sources
通用图像加载器 sources
我想和你分享一个我在毕加索,通用图像加载器和滑翔中做的基准。
Fresco不在基准测试中,因为对于我正在运行测试的项目,我们不想重构我们的布局(因为Drawee视图)。
我推荐通用图像加载器,因为它的自定义,内存消耗和大小和方法之间的平衡。
如果你有一个小项目,我会选择格莱德基金会(或给Fresco一个尝试)。