Home
malinkang
Cancel

Android自定义属性

创建自定义属性需要以下步骤: 创建一个自定义View。 创建values/attrs.xml文件,并定义属性。 在View中获取属性值并使用。 自定义属性 <resources> <declare-styleable name="PieChart"> <attr name="showText" format="boo...

Retrofit源码分析

Retrofit源码分析 流程分析 Retrofit执行流程可以分为两部分: 创建ServiceMethod。 调用ServiceMethod的invoke()。 下图中,黑线部分是创建ServiceMethod的过程,红线部分是invoke()的调用过程。 ServiceMethod创建过程: 通过动态代理,获取到我们定义的接口里的所有Method,调用S...

Okhttp源码分析

Okhttp基本流程分析 基本流程 创建RequestBody 创建Request 创建OkhttpClient 调用newCall创建Call对象 执行异步或同步操作。 创建Socket连接 发送请求并处理返回结果 创建RequestBody RequestBody主要通过writeTo方法将请求内容写入到BufferedSink。RequestBo...

Okio源码分析

Glide缓存分析

缓存过程 loadFromMemory @Nullable private EngineResource<?> loadFromMemory( EngineKey key, boolean isMemoryCacheable, long startTime) { //内存缓存不可用直接返回null if (!isMemoryCacheable) { r...

Glide线程池分析

GlideExecutor 在build()中一共创建了4个线程池 newDiskCacheExecutor()创建磁盘缓存的线程池 private static final int DEFAULT_DISK_CACHE_EXECUTOR_THREADS = 1; public static GlideExecutor newDiskCacheExecutor() { return...

Glide请求过程分析

RequestManager会调用SingleRequest的begin方法发起一个请求,一个请求会经历如下过程。 如果没有设置加载的图片的宽高,则会获取对应ImageView的宽高。 获取图片的流。 调用Encoder,将流转化为文件。 获取文件流,并调用Decoder转化为Bitmap。 调用Downsampler进行重新采样。 调用Transformation...

Glide基本流程分析

Glide源码分析 Glide的使用非常简单只需要调用with、load into三个方法。 GlideApp.with(this) .load(url) .into(imageView); 接下来,我们依次分析这三个方法。 with() Glide的with方法主要做了三个事情: Glide的初始化 获取RequestManagerRetri...

DiskLruCache源码分析

DiskLruCache使用 //1.创建DiskLruCache对象 DiskLruCache diskLruCache = DiskLruCache.open(directory, APP_VERSION, VALUE_COUNT, maxSize); //2.获取Editor对象 DiskLruCache.Editor editor = diskLruCache.edit(key);...

Git使用

git remote git remote add origin [email protected]:malinkang/learngit.git #添加远程仓库 git remote remove origin #删除远程仓库 git remote -v #查看远程仓库地址 分支 git checkout -b v2.0.0 #创建分支 git checkout v1.0.0 #切换分支 ...