Glide手记之——Registry注册表关系图

577 阅读1分钟

以下源码分析基于Glide 4.12.0版本分析

官方文档中文版:muyangmin.github.io/glide-docs-…

本篇内容是列出注册表中主要的关系图,用于辅助DecodeHelper分析之用。

ModelLoaderRegistry关系图

modelClassdataClassFactory
BitmapBitmapUnitModelLoader.Factory
GifDecoderGifDecoderUnitModelLoader.Factory
FileByteBufferByteBufferFileLoader.Factory
FileInputStreamFileLoader.StreamFactory
FileParcelFileDescriptorFileLoader.FileDescriptorFactory
FileFileUnitModelLoader.Factory
intInputStreamResourceLoader.StreamFactory
intParcelFileDescriptorResourceLoader.FileDescriptorFactory
IntegerInputStreamResourceLoader.StreamFactory
IntegerParcelFileDescriptorResourceLoader.FileDescriptorFactory
IntegerUriResourceLoader.UriFactory
intAssetFileDescriptorResourceLoader.AssetFileDescriptorFactory
IntegerAssetFileDescriptorResourceLoader.AssetFileDescriptorFactory
intUriResourceLoader.UriFactory
StringInputStreamDataUrlLoader.StreamFactory
UriInputStreamDataUrlLoader.StreamFactory
StringInputStreamStringLoader.StreamFactory
StringParcelFileDescriptorStringLoader.FileDescriptorFactory
StringAssetFileDescriptorStringLoader.AssetFileDescriptorFactory
UriInputStreamAssetUriLoader.StreamFactory
UriParcelFileDescriptorAssetUriLoader.FileDescriptorFactory
UriInputStreamMediaStoreImageThumbLoader.Factory
UriInputStreamMediaStoreVideoThumbLoader.Factory
UriInputStreamUriLoader.StreamFactory
UriParcelFileDescriptorUriLoader.FileDescriptorFactory
UriAssetFileDescriptorUriLoader.AssetFileDescriptorFactory
UriInputStreamUrlUriLoader.StreamFactory
URLInputStreamUrlLoader.StreamFactory
UriFileMediaStoreFileLoader.Factory
GlideUrlInputStreamHttpGlideUrlLoader.Factory
byte[]ByteBufferByteArrayLoader.ByteBufferFactory
byte[]InputStreamByteArrayLoader.StreamFactory
UriUriUnitModelLoader.Factory
DrawableDrawableUnitModelLoader.Factory

ResourceDecoderRegistry关系图

keydataClassresourceClassdecode
legacy_appendUriDrawableResourceDrawableDecoder
UriBitmapResourceBitmapDecoder
FileFileFileDecoder
DrawableDrawableUnitDrawableDecoder
ByteBufferBitmapVideoDecoder
ByteBufferBitmapDrawableBitmapDrawableDecoder
BitmapByteBufferBitmapByteBufferBitmapDecoder
InputStreamBitmapStreamBitmapDecoder
ParcelFileDescriptorBitmapParcelFileDescriptorBitmapDecoder
ParcelFileDescriptorBitmapVideoDecoder
AssetFileDescriptorBitmapVideoDecoder
BitmapBitmapUnitBitmapDecoder
GifDecoderBitmapGifFrameResourceDecoder
GifInputStreamGifDrawableStreamGifDecoder
ByteBufferGifDrawableByteBufferGifDecoder
BitmapDrawableByteBufferBitmapDrawableBitmapDrawableDecoder
InputStreamBitmapDrawableBitmapDrawableDecoder
ParcelFileDescriptorBitmapDrawableBitmapDrawableDecoder

TranscoderRegistry关系图

这里注意,如果toClassfromClass的父类,也成立。toClass类型也可能是fromClass的类型

fromClasstoClasstranscoder
BitmapBitmapDrawableBitmapDrawableTranscoder
Bitmapbyte[]BitmapBytesTranscoder
Drawablebyte[]DrawableBytesTranscoder
GifDrawablebyte[]GifDrawableBytesTranscoder

ResourceEncoderRegistry关系图

resourceClassencoder
BitmapBitmapEncoder
BitmapDrawableBitmapDrawableEncoder
GifDrawableGifDrawableEncoder

EncoderRegistry关系图

dataClassencoder
ByteBufferByteBufferEncoder
InputStreamStreamEncoder

Transformation关系图

准确来说这不是注册表的东西,是手动添加的关系,而且不一定有。

resourceClassTransformation
GifDrawableGifDrawableTransformation
BitmapDrawableDrawableTransformation
DrawableDrawableTransformation
BitmapFitCenter(不是固定的)

如果本文对您有帮助,请多多发表您的评论以及收藏或关注。

以上全部源码以及说明都是由本人亲自码出来的,请各位看官尊重劳动成果,切勿在本人未允许的情况下转载。如已经本人同意转载,请标明文章来源,附带原文链接。

有兴趣探讨技术或者有疑问的小伙伴可以加我好友,我会在评论区回复,本人菜狗一只,如果有大佬想带我就更好了^_^。