iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android Coil和Glide实例对比分析
  • 714
分享到

Android Coil和Glide实例对比分析

2023-07-05 04:07:31 714人浏览 八月长安
摘要

这篇文章主要介绍“Android Coil和Glide实例对比分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android Coil和Glide实例对比分析”文章能帮助大家解

这篇文章主要介绍“Android Coil和Glide实例对比分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android Coil和Glide实例对比分析”文章能帮助大家解决问题。

Coil概述

Coil是Android上的一个全新的图片加载框架,它的全名叫做coroutine image loader,即协程图片加载库。

与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的api等优势。

它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。并且是全用Kotlin编写,如果你是纯Kotlin项目的话,那么这个库应该是你的首选。

这应该是一个很新的一个图片加载库,完全使用kotlin编写,使用了kotlin的协程,图片网络请求方式默认为OkHttp,相比较于我们常用的Picasso,Glide或者Fresco,它有以下几个特点:

  • 足够快速,它在内存、图片存储、图片的采样、Bitmap重用、暂停\取消下载等细节方面都有很大的优化(相比于上面讲的三大框架);

  • 足够轻量,只有大概1500个核心方法,当然也是相对于PGF而言的;

  • 足够新,也足够现代!使用了最新的Koltin协程所编写,充分发挥了CPU的性能,同时也使用了OKHttp、Okio、LifeCycle等比较新式的Android库。

Glide概述

首先先说一下Glide跟其他框架相比优势在哪里?

生命周期的管理 2:支持gif picasso也支持gif 3:三级缓存,内存缓存中还分为活动缓存和内存缓存;活动缓存指得是讲正在使用得图片用弱引用缓存,使用完成后到内存缓存;再到磁盘缓存; 4:占用内存小,它默认得编码格式是rgb565; picasso用得argb8888 ImageLoader不支持gif图片加载 而且也很老了

Glide VS Coil

当前是基于Glide和Coil最新版本来分析的:

对于Coil:

implementation("io.coil-kt:coil:1.4.0")

对于Glide:

implementation 'com.GitHub.bumptech.glide:glide:4.12.0'

代码加载图片,并计算加载时间:

对于Glide:

fun ImageView.loadImage(url:String, context: Context, position : Int) {    val t = System.currentTimeMills()  Glide.    with(context).    load(url).    placeholder(R.drawable.ic_launcher_background).into(        object: CustomTarget<Drawable>() {            override fun onLoadCleard(placeholder : Drawable?) {}                    override fun onResourceReady(reosurce:Drawable, transition : Transition<in Drawable>?) {                this@loadImage.setImageResource(resource)                Log.d("LoadImage", "$position ---> ${System.currentTimeMills() - t }")          }      }    )}

对于Coil:

private fun ImageView.loadImage(url:String, position:Int) {  val t = System.currentTimeMillis()  this.load(url) {        target { drawable ->          this@loadImage.setImageDrawable(drawable)            Log.d("LoadImage", "$position --> ${System.currentTimeMillis() - t}")       }  }}

下面的图标中将会告诉你在RecyclerView中加载图片所花费的时间:

为了测试的精确性,我们将app运行了5次,然后取平均值:

这些测试是在4G网的设备上。

这里有两组测试分别是小图片和大图片:

对于小图片

第一次加载的所花时间为:

Android Coil和Glide实例对比分析

Android Coil和Glide实例对比分析

对于大图片

第一次加载的所花时间为:

Android Coil和Glide实例对比分析

Android Coil和Glide实例对比分析

对于这些结果,就目前而言,Glide 的加载速度会快于Coil,但是如果你在你的项目中使用了Jetpack,Kotlin Coroutines和OkHttp,那么Coil将会更加适合你。

总结

Glide是一个Android平台的快速高效开源的图片加载框架,现在有很多人在使用它。然而Coil作为一个新的图片加载库在近些日子也越来越受欢迎。两个库的基本功能是相同的;它们都是使用BitmapFactory来解析数据,然后使用相同的Android SDK来从文件中读取数据。

那么为什么Coil的欢迎程度加深了,Coil和Glide又有何不同呢?


CoilGlide
生命周期监控直接使用LifeCycle通过注入一个无界面的Fragment来回调LifeCycle
线程通过协程来完成后台任务和线程切换通过线程池来完成后台任务

关于“Android Coil和Glide实例对比分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Android Coil和Glide实例对比分析

本文链接: https://www.lsjlt.com/news/349305.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作