Glide的与其他图片加载库的优势

来源:互联网 发布:两个服务器数据同步 编辑:程序博客网 时间:2024/05/22 17:01

最近的准备面试的我,不得不准备一下。老是怕面试官问到你们用的什么图片加框架,看了不少大神的博客,也对这方面饿补了一下。到时候也能在面试官面前装一装。开车了…..

首先你跟人家说的时候,肯定要拿来一个另一库做对比是不。然后我们今天拿来的库就是picasso。

1.Glide

● 它采用了android原生的HttpURLConnection网络库
● 支持加载动态图
● Glide缓存又将它分成了两个模块,一个是内存缓存,一个是硬盘缓存。
● 这两个缓存模块的作用各不相同,内存缓存的主要作用是防止应用重复将 图片数据读取到内存

                                  硬盘缓存

硬盘缓存的实现也是使用的LruCache算法
当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取数据。
调用decodeFromCache()方法从硬盘缓存当中读取图片,一种是调用decodeFromSource()来读取原始图片。默认情况下Glide会优先从缓存当中读取,只有缓存中不存在要读取的图片时,才会去读取原始图片。
调用diskCacheStrategy()方法并传入DiskCacheStrategy.NONE,就可以禁用掉Glide的硬盘缓存功能了。
● DiskCacheStrategy.NONE: 表示不缓存任何内容。
● DiskCacheStrategy.SOURCE: 表示只缓存原始图片。
● DiskCacheStrategy.RESULT: 表示只缓存转换过后的图片(默认选项)。
● DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。

                                  内存缓存

1. Engine类的load()方法当中fetcher.getId()方法获得了一个id字符串,这个字符串也就是我们要加载的图片的唯一标识
2. Glide内存缓存的实现也是使用的LruCache算法。
3. loadFromCache()和loadFromActiveResources()。这两个方法中一个使用的就是LruCache算法,另一个使用的就是弱引用。
4. skipMemoryCache设置来是否需要内存缓存。

原创粉丝点击