# Glide / Content Provider


### Glide 简单知识

1. 内存 - 磁盘 - 网络 三级加载

2. 内存分为 `weakHashMap` 以及 `Lru cache`

3. 磁盘缓存策略:

   1. `DiskCacheStrategy.DATA`：只缓存原始内容
   2. `DiskCacheStrategy.NONE`： 不缓存任何内容
   3. `DiskCacheStrategy.RESOURCE`：只缓存转换过后的图片(经过decode，转化裁剪的图片)
   4. `DiskCacheStrategy.ALL` : 既缓存原始图片, 也缓存转换过后的图片. 对于远程图片, 缓存DATA和RESOURCE. 对于本地图片, 只缓存RESOURCE.
   5. `DiskCacheStrategy.AUTOMATIC` (默认策略)：加载远程数据时, 仅存储原始数据(因为下载远程数据相比调整磁盘上已经存在的数据要昂贵得多), 而对于本地数据, 仅存储变换过的缩略图(RESOURCE), 因为即使你需要再次生成另一个尺寸或类型的图片, 取回原始数据也很容易

- Engine.load
- -  loadFromMemory
- - - loadFromActiveResources (Map<Key, ResourceWeakReference>)  
- - - loadFromCache (LruResourceCache)
- - waitForExistingOrStartNewJob


### Content Provider

#### 有啥用？

1. 读取系统日历/媒体库(图片视频音频...)/联系人/短信.....
2. 与其他应用配合, 提供广告精准推送, 比如淘宝保存了你的购物记录, 在UC浏览器打开就可能会出现你浏览过的商品(即使你没有登录) ~~这只是个例子 会不会真的是这样的我不确定~~
3. framework 层开发, 给别的平台应用暴露 api
