发现:
- 毕加索v / s ImageLoader之间的区别...
- 有关库GLIDE的信息在这里...
- 最近,Facebook发布了名为Fresco的新图像库
问题:
- Picasso v / s Imageloader v / s Fresco和有什么不一样
- 我们什么时候可以使用Glide
- 哪个是最好的库。
- 如果每个图书馆都有自己的意义,那它们是什么?
Answers:
我是Fresco项目的工程师之一。所以显然我有偏见。
但是您不必相信我的话。我们已经发布了一个示例应用程序,使您可以并排比较五个库(壁画,毕加索,UIL,Glide和Volley Image Loader)的性能。您可以在我们的GitHub存储库中获得它。
我还应该指出,壁画在Maven Central上可用,如com.facebook.fresco:fresco
。
壁画提供的功能毕加索,UIL和Glide尚不具备:
还有许多其他内容(请参阅我们的文档),但这是最重要的。
提醒您,这是一个高度基于意见的问题,因此我停止制造峡湾,并做了一张快速餐桌
现在库比较比较困难,因为在很多参数上,这四个参数几乎都做相同的事情,除了Fresco可能是因为其中有很多新的内存级别优化,所以让我知道您是否想要某些参数请根据我的经验进行比较。
最少使用Fresco,随着我继续使用并了解当前漏洞利用方法,答案可能会演变。将used personally
制作完成的应用程序具有被使用的库ATLEAST一次。
*注意-壁画现在支持GIF以及WebP动画
壁画 来源 | 异地
(-)
-库很大
-不能使用视图和位图参数进行回调
-SimpleDraweeView不支持wrap_content-
很大的缓存
(+)
-相当快的图像加载器(用于中小型图像)
-大量功能(流,绘图工具,存储管理等)
-可以设置直接在XML(例如圆角)
- GIF支持
-的WebP和动画WebP的支持
毕加索 资源 | 异地
(-)
-缓慢地将大图像从Internet加载到ListView
(+)
-库
很小
- 缓存很小-使用简单
-UI
不冻结
-WebP支持
滑翔 源
( - )
-大库的大小
(+)
-缓存自带的大小
-应用简单
-支持GIF格式
- WebP的支持
-从互联网上快速装载大图像到ListView控件
- UI不会冻结
- BitmapPool重新使用内存和因此较少的GC事件
通用图像加载器 源
(-)
-功能有限(图像处理受限)
-自2015年11月27日起,项目支持就停止了
(+)
-库的大小很小
-使用简单
由我在SGS2(Android 4.1)(WiFi 8.43 Mbps)上
进行了测试,Java的正式版本,而不是Xamarin!
2015年10月19日,
我更喜欢使用Glide。在这里
阅读更多。
如何使用Glide 将缓存写入外部存储(SD卡)。
OutOfMemory
一直……
ImagePipelineConfig.setDownsampleEnabled(true)
它来防止其冻结。但是它有时会跳过GIF的帧。如果您仅在应用程序上显示静态图像,我想您可以尝试一下。
这些答案完全是我的看法
毕加索是一种易于使用的图像加载器,Imageloader也是如此。壁画使用一种不同的方法来加载图像,我还没有使用过,但是我觉得它更像是一种从网络获取图像并将其缓存然后显示图像的解决方案。然后另一种方式,例如Picasso / Imageloader / Glide,对我来说更像是在屏幕上显示图像,它也确实从网络获取图像并将其缓存。
Glide试图与Picasso互换性,我认为当他们创建Picasso时,其思维方式遵循HTTP规范,并让服务器决定缓存策略并缓存完整大小并按需调整大小。Glide与遵循HTTP规范相同,但是通过做出一些不同的假设(例如,缓存调整大小后的图像而不是完整大小的图像,并显示具有RGB_565而不是RGB_8888的图像)来尝试减小内存占用。这两个库均提供对默认设置的完全自定义。
关于哪个库最适合使用,真的很难说。Picasso,Glide和Imageloader是受人尊敬且经过良好测试的库,它们都易于使用默认设置使用。毕加索和Glide都只需要一行代码即可加载图像,并具有占位符和错误图像。自定义行为也不需要太多工作。Imageloader也是如此,后者也是比Picasso和Glide还要老的库,但是我没有使用过它,所以关于性能/内存使用/自定义的内容并不能多说,但是查看github上的自述文件给我的印象是相对易于使用和设置。因此,在选择这三个库中的任何一个时,您都不会做出错误的决定,这更多地取决于个人喜好。就像facebook SDK尚未在mavenCentral上正式发布一样,自2014年9月以来我还不习惯使用Facebook sdk,似乎他们已于2014年10月在mavenCentral上发布了第一个版本。因此,要花点时间我们还需要一些时间。关于它的好意见。
我认为这3个知名图书馆之间没有显着差异。唯一脱颖而出的是壁画,但这是因为它采用了不同的方法,并且是新颖的,没有经过战斗测试。
Glide和Picasso都不是完美的。Glide将图像加载到内存并进行缓存的方式比Picasso更好,后者使图像加载速度更快。此外,它还有助于防止应用出现流行的OutOfMemoryError。GIF动画加载是Glide提供的一项致命功能。无论如何,毕加索解码的图像质量都比Glide好。
我更喜欢哪一个?尽管我使用Picasso的时间很长,但我必须承认我现在更喜欢Glide。但我建议您将位图格式更改为ARGB_8888,并让Glide缓存全尺寸图像并先调整大小。其余的将使您的工作做好!
RGB_565
。+1对于Picasso Palette Helper。
有一篇文章谈论了很多关于毕加索与滑翔的文章
我想与大家分享我在毕加索,Universal Image Loader和Glide中所做的基准测试:https : //bit.ly/1kQs3QN
Fresco超出了基准,因为对于我正在运行测试的项目,我们不想重构布局(由于Drawee视图)。
我建议使用Universal Image Loader,因为它具有自定义功能,内存消耗量以及大小和方法之间的平衡。
如果您有一个小项目,我会选择Glide(或尝试Fresco)。