Android图片加载为什么选择glide
为什么图片加载我首先Glide
图片加载框架用了不少,从afinal框架的afinalBitmap,Xutils的BitmapUtils,老牌框架universalImageLoader,著名开源组织square的picasso,google推荐的glide到FaceBook推出的fresco。这些我前前后后都体验过,那么面对这么多的框架,该如何选择呢?下面简单分析下我的看法。
afinal和Xuils在github上作者已经停止维护了,开源社区最新的框架要属KJFramework,不过这种快速开发框架看似很好用,功能也应有尽有,小型项目也罢,大型项目我不是很推荐,这样做项目的耦合度太高,一旦出现停止维护,而新的问题不断增加,没人处理就麻烦了。
在glide和fresco还未出来的时候,当时最火的莫过于universalImageLoader和picasso了,当时觉得universalImageLoader配置相对picasso麻烦,虽然提供了各种配置,但是没有实践过,根本不知道如何配置,还不如都采用默认配置,就选择了picasso作为图片加载框架,用了近一年的时间,没有太大的问题,且使用简单,或许是因为之前的项目太过于简单,周期也并不是很长,还有使用eclipse开发,一个很大的问题一直都没有暴露出来,换上了最新的Android Studio可以清晰的看到各种性能相关的监控,如cpu还有内存监控,终于知道了之前做的项目都那么的卡顿的罪魁祸首,picasso加载稍微大一点的图片就特别耗内存,通常一个listView或者顶部滑动广告栏都含有多张图片,这使得做出的页面只要含图片较多就异常卡顿(之前的时候还把它归结为测试机不好),知道这一点后我就有点想把picasso给替换掉,但这一次我不能那么粗心。
测试了picasso,glide,universalImageLoader,fresco这四个框架,测试内容大概有以下几项,内存测试,大图片测试,小图片测试,本地图片,网络图片当然还结合官方文档体验其特色功能,内存测试中,glide,universalImageLoader,fresco表现都非常优秀,picasso这一点上实在是太糟糕了,小图片差别也不是很大,稍微大点图片内存消耗就要比其他高出几倍,这一点上证明了我的猜想,picasso不能再用了,下面一项项分析其他框架,在高于2M左右大图测试中fresco的表现则和picasso一样直接神马都不显示,项目中要实现大图预览功能,这点上是不行的,接着看universalImageLoader和glide在这几项测试中成绩都很好,到底该如何选择呢?
因为我项目之前用的picasso,glide从用法上几乎就是另一个picasso,从picasso转移到glide相对改动较少,还有一点就是这个项目是google在维护,我也能给它更多的信任,相比较universalImageLoader,glide可以支持gif和短视频,后期也需要用到,这里不得不谈一下glide优秀的缓存机制了,glide图片缓存默认使用RGB565相当于ARGB8888可以节省不少的空间,支持与activity,fragment,application生命周期的联动,更智能管理图片请求当然还有其他的扩展更多可以看?glide介绍?当然,glide的方法数量比universalImageLoader多了1000多个,遇到64k问题的会比较关注这个。
刚才只是掠过fresco,其实我对他的期待还是蛮大的,因为刚出来还有居多不稳定的地方,里面存在着大量吸引着我的功能,支持webps格式(和jpg一样都是有损压缩格式,webps相同质量图片更节省空间),支持渐进式jpeg,可以轻松的定制image的各种属性,支持多图请求和图片复用,并支持手势缩放和旋转等等,更多介绍?fresco,当然,实际用的时候并没有那么好,很多功能都有待完善。
还有一点细节的地方要注意的,最好不要直接拿来用,至少经过自己简单的封装,而不是直接在项目中使用,一个简单的例子,后期图片过多,可能需要另外配置一台机器单独存放图片,主机地址做成可配置,可不要因为一个简单的需求又要加班了
Android图片加载为什么选择glide的更多相关文章
- Android 图片加载库Glide 实战(二),占位符,缓存,转换自签名高级实战
http://blog.csdn.net/sk719887916/article/details/40073747 请尊重原创 : skay <Android 图片加载库Glide 实战(一), ...
- Android 图片加载框架 Glide 的用法
https://github.com/bumptech/glide Android图片加载框架最全解析(一),Glide的基本用法http://blog.csdn.net/guolin_blog/ar ...
- android 图片加载库 Glide 的使用介绍
一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...
- android图片加载库Glide
什么是Glide? Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide ...
- Android图片加载与缓存开源框架:Android Glide
<Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉 ...
- Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
本篇将是我们这个Glide系列的最后一篇文章. 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了.那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定 ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...
- Android图片加载框架最全解析(六),探究Glide的自定义模块功能
不知不觉中,我们的Glide系列教程已经到了第六篇了,距离第一篇Glide的基本用法发布已经过去了半年的时间.在这半年中,我们通过用法讲解和源码分析配合学习的方式,将Glide的方方面面都研究了个遍, ...
- Android图片加载框架最全解析(五),Glide强大的图片变换功能
大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...
随机推荐
- odoo开发笔记 -- div标签代替odoo button写法
odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...
- 使用 IdentityServer4 实现 OAuth 2.0 与 OpenID Connect 服务
IdentityServer4 是 ASP.NET Core 的一个包含 OIDC 和 OAuth 2.0 协议的框架.最近的关注点在 ABP 上,默认 ABP 也集成 IdentityServer4 ...
- CountDownLatch/CyclicBarrie用法记录
在jdk1.5中,java提供了很多工具类帮助我们进行并发编程,其中就有CountDownLatch和CyclicBarrie 1.CountDownLatch的用法 CountDownLatch 位 ...
- 【原创】DMA
什么是DMA DMA,Direct Memory Access,直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式.在DMA模式下,CPU只需要向DMA控制器下达指令,传输数据 ...
- Disconf源码分析之启动过程分析上(1)
Disconf的启动,主要是包括两次扫描和XML非注解式配置,总共分为上下两篇,上篇先主要介绍第一次静态扫描过程. 先从入口分析,通过Disconf帮助文档,可以看到xml必须添加如下配置. < ...
- spring学习(三) ———— spring事务操作
前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTem ...
- 翻译:DECLARE Variable(已提交到MariaDB官方手册)
本文为mariadb官方手册:DECLARE Variable的译文. 原文:https://mariadb.com/kb/en/library/declare-variable/我提交到MariaD ...
- Mybatis的SqlSession运行原理
前言 SqlSession是Mybatis最重要的构建之一,可以简单的认为Mybatis一系列的配置目的是生成类似 JDBC生成的Connection对象的SqlSession对象,这样才能与数据库开 ...
- Linux文件权限与属性详解 之 ACL
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- HDUOJ-2089 不要62
Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...