android开发-Glide源码分析

来源:互联网 发布:韦东山嵌入式linux 编辑:程序博客网 时间:2024/06/06 20:03

ImageviewTarget包含了Imageview以及其他的生命周期的回调比如成功了、失败了、异常的
他是在onto
GenericRequst包含了他的 错误资源、展位资源、动画设置等一切设置的属性都在这里


DrawableTypeRequest中的构造方法中

if (transcoder == null) {
            transcoder = glide.buildTranscoder(resourceClass, transcodedClass);
        }
        DataLoadProvider<ImageVideoWrapper, Z> dataLoadProvider = glide.buildDataProvider(ImageVideoWrapper.class,
                resourceClass);
        ImageVideoModelLoader<A> modelLoader = new ImageVideoModelLoader<A>(streamModelLoader,
                fileDescriptorModelLoader);


}
transcoder 他是GifBitmapWrapperDrawableTranscoder,图片的形成就在这里
dataLoadProvider 实际上构造出来的是ImageVideoGifDrawableLoadProvider

modelLoader 实际上构造出来的是ImageVideoModelLoader ,而网络请求就是在这里配置的,这里会去构建HttpUrlFetcher



在EngineJob中做下载的工作,EngineJob这里面有线程池和主线程的Handler
Downsampler把InputStream转化成bitmap



网络线程池有个数是:cpu可用个数
而磁盘缓存线程池有1个
内存缓存使用的是LruResourceCache memoryCache (最大内存:如果是低配手机,就每个进程可用的最大内存乘以0.33,否则就每个进程可用的最大内存乘以0.4)
本地缓存使用的是InternalCacheDiskCacheFactory(DiskLruCacheFactory)  diskCacheFactory
单聊模式
图片缓存的路径 在我们的缓存路径下面了
原创粉丝点击