Picasso vs Imageloader vs Fresco vs Glide vs Coil [关闭]

2024-02-28

发现:

  1. 之间的区别Picasso 与 ImageLoader 在这里 ... https://stackoverflow.com/q/19995007/1083093
  2. 有关图书馆的信息滑翔到这里... https://github.com/bumptech/glide
  3. Facebook有自己的图书馆Fresco https://github.com/facebook/fresco
  4. 最新添加到列表中Coil https://github.com/coil-kt/coil

问题:

  1. Picasso v/s Imageloader v/s Fresco v/s Coil 之间有什么区别
  2. 哪个是最好使用的库。
  3. 如果每个图书馆都有自己的意义,那么它们是什么?

我是 Fresco 项目的工程师之一。所以显然我有偏见。

但你不必相信我的话。我们发布了一个示例应用程序,可让您并排比较五个库(Fresco、Picasso、UIL、Glide 和 Volley Image Loader)的性能。您可以在我们的 GitHub 存储库 https://github.com/facebook/fresco/tree/master/samples.

我还应该指出 Fresco 在 Maven Central 上可用,因为com.facebook.fresco:fresco.

Fresco 提供了 Picasso、UIL 和 Glide 尚不具备的功能:

  1. 图像不存储在 Java 堆中,而是存储在 ashmem 堆中。中间字节缓冲区也存储在本机堆中。这留下了更多的内存可供应用程序使用。它降低了内存不足错误的风险。它还减少了应用程序必须执行的垃圾收集量,从而提高了性能。
  2. 可以流式传输渐进式 JPEG 图像,就像在 Web 浏览器中一样。
  3. 可以围绕任何点裁剪图像,而不仅仅是中心。
  4. JPEG 图像可以自行调整大小。这可以避免在尝试缩小图像大小时出现 OOMing 问题。

还有很多其他的(请参阅我们的文档 http://frescolib.org/docs/),但这些是最重要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Picasso vs Imageloader vs Fresco vs Glide vs Coil [关闭] 的相关文章

  • 使用新语法应用 Android Gradle 插件

    如何使用新的 Gradle 插件语法应用 Android 插件 plugins id version 代替 buildscript dependencies classpath com android tools build gradle
  • ContentResolver的notifyChange方法是否也通知详细的Uri?

    在应用数据期间我使用notifyChange与Uri 假设我通知content com package my items 我还有详细的Activity显示数据来自content com package my items 1 是否通知 一般
  • 使用 HttpClient 时,为什么服务器响应中省略了 Content-Length 标头?

    我正在使用这个问题的源代码如何异步执行httprequest并显示下载响应的进度 https stackoverflow com questions 9594318 how to asynchronous perform a httpreq
  • 从 arraylist 和 hashmap 中删除重复项

    我有一个数组列表 其中包含付款人的姓名 另一个数组列表包含每次付款的费用 例如 nameArray 尼古拉 劳尔 洛伦佐 劳尔 劳尔 洛伦佐 尼古拉 价格数组 24 12 22 18 5 8 1 我需要将每个人的费用相加 所以数组必须变成
  • 如何在android中压缩和解压png图像

    您好 在我的应用程序中 当我单击 zip 按钮时 我需要压缩图像文件 当我单击解压缩按钮时 我需要解压缩文件 我尝试使用下面的代码来压缩图像 但我的问题是当我单击 zip 按钮时 正在创建 zip 文件 但之后在使用 winzip 软件的系
  • 导入已经创建的sqlite数据库(xamarin)

    我正在使用 Xamarin 想知道如何导入我已经创建的 sqlite 数据库 到目前为止 我已将其添加到资产文件夹中 但不知道下一步从哪里开始 string localPath Path Combine System Environment
  • 如何在 android 中启动“添加联系人”活动

    您能告诉我如何在 Android 中启动 添加联系人 活动吗 谢谢 API 级别 5 及以上解决方案 Add listener so your activity gets called back upon completion of act
  • Android 中的 Sugar ORM:更新 SQLite 中保存的对象

    我是在 Android 上使用 SQLite 和 Sugar ORM 进行应用程序开发的新手 并尝试阅读 Sugar ORM 文档 但没有找到有关如何更新 SQLite 中保存的对象的任何信息 更改对象属性后还可以保存对象吗 就像是 Cus
  • API29 上不推荐使用 setColorFilter

    我使用以下行来更改 VectorDrawable 的颜色 mydrawable getBackground setColorFilter color PorterDuff Mode SRC ATOP 这很好用 尽管它现在已被弃用 文档建议我
  • Android:我可以创建一个不是矩形的视图/画布吗?圆形的?

    我有一个圆形视图 悬停在主要内容上方 gt 从屏幕出来的 z 轴方向 当有人点击屏幕时 我希望选择主要内容或悬停在上方的视图 当它覆盖主视图时 到目前为止效果很好 我在透明画布上有一个圆形物品 这意味着您可以看到该圆圈之外的背景的所有内容
  • android中根据屏幕尺寸计算图像尺寸

    我正在尝试根据屏幕尺寸计算图像高度和宽度 我从后端获取 5 x 7 尺寸的图像 为了将像素乘以 72 进行转换 我有 360 X 504 尺寸的图像 对于 360 X 504 我的动态透明矩形区域将显示为 1 223 x 1 179 即 8
  • onScale 事件后触发奇怪的 onScroll 事件

    我有一个同时使用 SimpleOnScaleGestureListener 和 SimpleOnGestureListener 的应用程序 每当我进行捏缩放时 我都会得到预期的 onScale 但是当我抬起时 我会看到一个奇怪的 onScr
  • 如何从android中的外部存储中获取所选文件的文件路径?

    我在选择文件的文件路径时遇到问题 我搜索了整个堆栈溢出 但问题没有解决 从设备中选择文件的代码如下所示 Intent intent new Intent Intent ACTION GET CONTENT intent setType in
  • 如何使用应用程序接口将蓝牙套接字传递给另一个活动

    因此 根据我收集的信息 套接字连接既不可序列化 也不可分割 但我需要将蓝牙连接传递给另一个活动 我不想作为中间人编写服务 所以请不要将此作为解决方案发布 我听说有一种方法可以使用自定义应用程序接口来传递这些类型的对象 但我一生都找不到这样的
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • Jetpack 导航:如何从一个嵌套图的子级导航到另一个嵌套图的子级?

    导航结构 MainActivity nav root HomeFragment AuthNestedGraph nav auth BeforeOtpFragment home OtpFragment ProfileNestedGraph n
  • Android 中的列表视图分页

    我有一个列表视图 其中显示了 50 个元素 我决定对视图进行分页 以便视图的每个部分都有 10 个元素 然后单击 下一个 按钮以获取下一个 10 个元素 如何设置10个数据 我关注这篇文章http rakhi577 wordpress co
  • 屏幕开/关检测

    在这里 我试图确定屏幕是否打开 但按下电源锁定 解锁按钮时它似乎不起作用 应用程序运行没有错误 但 if else 中的代码似乎没有效果 Edited现在代码可以工作了 谢谢Olgun 但媒体播放器播放不会停止 并且每次在屏幕上 离屏时都会
  • 我在 PopupMenu 中使用 ShareActionProvider,但显示两个 PopupMenu?

    我在 PopupMenu 中使用 ShareActionProvider 但是当我单击共享菜单项时 它会在屏幕上显示两个 PopupMenus 一个被另一个覆盖 一个显示应用程序图标和名称 另一个仅显示应用程序名称 除了这个问题之外 它工作
  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c

随机推荐

  • 在 pandas 中加载带有二进制数据的 CSV 文件

    我正在尝试解析 CSV 文件 来自外部数据源 其中其中一列使用不一致的字符编码 我不想尝试让数据提供者使用一致的编码 而是只想将该列读取为二进制数据 然而 pandas read csv似乎在解析之前将整个文件解码为字符串 所以这给了我错误
  • 正则表达式包含某些单词但排除另一个单词

    我正在尝试编写一个正则表达式 它将检查 URL 是否包含某些单词并排除另一个单词 原因是我正在尝试跟踪通过我的网站的流量 并且我不想计算点击 谢谢 页面的任何人 例如 http www mywebsite com register now
  • 将字符串编码为字符代码

    我想将电子邮件地址编码为其相应的字符代码 因此在打印时 浏览器会解释字符代码 但机器人会获取编码的字符串而不是解释的字符串 例如 1 email protected cdn cgi l email protection 应按 2 发送到浏览
  • 鼠标悬停在 safari、selenium web 驱动程序中不起作用

    我在 FF 和 chrome 中使用鼠标悬停操作 它工作正常 但同样的代码在 safari 中不起作用 我正在使用 mac OS 和 selenium webdriver 和 java 我尝试了下面的代码 new Actions drive
  • 我可以向通过 MQTT WebSocket 连接的一组 Azure IoT 中心设备发送消息吗?

    Goal 将消息发送到一组通过 MQTT WebSocket 连接的 Azure IoT 中心设备 初步想法 让一组 IoT 中心设备 组 X 订阅主题 X 的消息 Problem On the 使用 MQTT 协议与 IoT 中心通信 h
  • 如何使用 watir-scroll 在表格内滚动

    我有一个应用程序 其中有一个动态表 仅当您向上或向下滚动时才会加载行 Watir scroll 正在滚动整个页面 我可以在该表中执行滚动吗 使元素可滚动通常是通过设置overflow风格 它很可能在一个div其中包含table 例如 div
  • C++ 仅标头包含模式

    我想在 hpp 中编写代码 而不将 h 和 cpp 分开 我做到了 我仅将 cpp 用于静态类字段定义 我不想手动编写 include 如果可能的话 我使用前向声明 我的每个 hpp 文件都包含 pragma 一次 但是 当我的项目增长到
  • Java:转换原始类[重复]

    这个问题在这里已经有答案了 Java中有没有一种简单的方法可以将原始类对象转换为对象类对象 给定一个类 Class cl 我想将其转换为没有基元的类 例如 Class
  • 在属性中实现逻辑是一个好习惯吗

    我们将 ASP NET 与 C 结合使用 根据我浏览过的开源项目 文章 我发现许多属性都包括logic但是当我这样做时 团队负责人告诉我 将逻辑放在属性中根本不好 而是通过方法调用逻辑 那真的很糟糕吗 为什么不在属性中使用逻辑 thanks
  • 关于Python的函数教程中的斐波那契数列示例

    这是什么they http docs python org 2 tutorial controlflow html have def fib n a b 0 1 while a lt n print a a b b a b 这就是我所拥有的
  • 如何将斯皮尔曼相关性 p 值以及相关系数添加到 ggpairs 中?

    使用以下代码在 R 中构建 ggpairs 图形 df 是一个数据帧 包含 6 个连续变量和 1 个Group多变的 ggpairs df 1 columns 1 ncol df 1 mapping ggplot2 aes colour d
  • 补偿 SOA 中继承不足的模式

    我发现继承和基类的概念是 OOP 的最强点 但 SOA 并不鼓励这样做 那么 克服 SOA 中这一限制的流行模式是什么 您能否提供解释这些模式的教程 在 WCF 中提供代码演示 注意 这不是关于 SOA 中可用模式的一般问题 但它更具体地针
  • OpenGL中glActiveTexture和GL_TEXTURE0的作用是什么?

    我正在寻找一种方法来理解原因glActiveTexture是需要的 我有下面的代码 glGenTextures 1 textureId glBindTexture GL TEXTURE 2D textureId 如果我想象的是GL TEXT
  • 如何从函数返回数组?

    如何从方法返回数组 以及必须如何声明它 int test void int test 但使用向量会 更C std vector lt int gt test EDIT我会澄清一些问题 既然你提到了C 我就选择new and delete 运
  • 多处理池示例不起作用并冻结内核

    我正在尝试并行化脚本 但由于未知原因 内核只是冻结而没有抛出任何错误 最小工作示例 from multiprocessing import Pool def f x return x x p Pool 6 print p map f ran
  • 似乎没有为 __doPostBack 发出正确的 GridView 标记

    I asked 这个问题 https stackoverflow com questions 4852474 asp net gridview update button fires edit event handler关于 ASP Net
  • 存储 mysql_connect 的 php 值的最安全位置?

    存储将在 mysql connect 中使用的值的最安全位置是什么 调用这些变量的最安全方法是什么 使用 require include 或其他东西会更好吗 谢谢 IMO 存储它的最佳位置是 PHP 文件 无论您使用require or i
  • 为什么 Response.Redirect 会导致 System.Threading.ThreadAbortException?

    当我使用 Response Redirect 将表单重定向到新页面时 出现错误 mscorlib dll 中发生了 System Threading ThreadAbortException 类型的第一次机会异常mscorlib dll 中
  • mgo - 查询性能似乎一直很慢(500-650 毫秒)

    我的数据层大量使用 Mongo 聚合 平均而言 查询需要 500 650 毫秒才能返回 我在用mgo 下面显示了一个示例查询函数 它代表了我的大多数查询的样子 func r userRepo GetUserByID id string Us
  • Picasso vs Imageloader vs Fresco vs Glide vs Coil [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 发现 之间的区别Picasso 与 ImageLoader 在这里 https stackoverflow com q 19995007 108