Glide 源码阅读解疑
2018-07-21
Glide 源码解析
暂无
0
转载请标明地址 QuincySx: http://www.jianshu.com/p/e8adc9581f69
问题不定时更新,如果你也有问题欢迎在评论区提出
Glide 是如何拓展不同的资源获取器的
- 在 manifest 文件中 添加 meta-data 标签、key 为 GlideModule 的路径,value 为 “GlideModule”
- 在 RequestManager 的构造方法里 调用了 Glide.get(context) 方法,通过 ManifestParser 根据 meta-data 标签的 value 来获取所有 manifest 中配置的 GlideModule ,然后循环调用GlideModule.registerComponents() 方法,将 ModelLoader 通过 Glide.register() 方法注册到 GenericLoaderFactory 中
当添加几个相同类型的资源获取器时,Glide的选择策略是什么
在 Glide 中维护这一个 GenericLoaderFactory 对象,在 Glide.register() 调用 GenericLoaderFactory.register() 的方法中可以看到他是根据相应资源的 class(此处关于 ModelLoader 的加载可以查看 Glide 的构造方法) 来替换相应的 ModelLoader,也就是 Glide 的策略是如果一个后配置者会替代前者