boybeak
boybeak

热爱技术,记录生活

LiveEventBus源码分析

不再分析了,理解了LiveData后,不难理解这个框架。 阅读本文前,请先阅读[《Jetpack之LiveData源码分析》](/源码分析系列/LiveEventBus源码分析.md)。因为LiveEventBus是基于LiveData构建的。 源码地址:LiveEventBus 典型用法如下: // 监听消息 LiveEventBus .get("some_key", ...

源码分析 #Android

LeakCanary原理分析

dependencies { // debugImplementation because LeakCanary should only run in debug builds. debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.5' } 只需要这样简单配置,就能接入LeakCanary...

源码分析 #Android

Jetpack之LiveData源码分析

在阅读这篇文章前,需要先对Lifecycle有所了解。 Lifecycle是LiveData的根基,先有了生命周期的管理,才能进行安全不泄漏的数据观察。 先要引入LiveData: implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0" def activity_version = "1.1.0" // Kotlin,引...

源码分析 #Android

Jetpack之Lifecycle源码分析

这是一篇解析jetpack库中的Lifecycle库的分析文章。 def lifecycle_version = "2.2.0" // Lifecycles only (without ViewModel or LiveData) implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" // Anno...

源码分析 #Android

Glide源码分析与自我实现(三)——APT的使用与GIF的优化

项目Demo地址:GifHelper 什么是APT? APT是Annotation Processing Tool的简称,即编译时注解处理器。它是一个javac的工具,在编译时,通过注解,按照规则自动生成相关代码的工具。 APT与Glide什么关系? 我们通常通过在build.gradle加入这样一段代码来引入Glide库。 repositories { google() jce...

Glide源码分析与自我实现(三)——APT的使用与GIF的优化
源码分析 #Android

Glide源码分析与自我实现(二)——缓存与BitmapPool

本文基于Glide 4.11.0 参考文章:Glide 源码分析解读-缓存模块-基于最新版Glide 4.9.0 **注意:**由于版本差异问题,本文有些部分与参考文章有差异。 缓存模块是Glide中非常重要的部分,Glide图片加载的高效性,几乎有一半功劳都在这里了。 一般来说,Glide有三级缓存,就是内存缓存、磁盘缓存和网络缓存。 先来看缓存流程图,如下: graph TD; styl...

源码分析 #Android

Glide源码分析与自我实现(一)——数据加载主流程

本文基于Glide 4.11.0 阅读前请参考Glide 源码分析解读-基于最新版Glide 4.9.0一文,该文章中,将Glide中各个部分的作用分析的非常好了。 Glide几乎是现在做Android图片加载的最佳选择了。如此优秀的一个框架是如何实现的呢?如果让我们自己来实现该怎么做呢?我们就通过自己实现一个低配版Glide的方式,来探究Glide中是如何实现的。 我们就称我们自己低配版Gl...

Glide源码分析与自我实现(一)——数据加载主流程
源码分析 #Android

ARouter源码分析

在阅读源码前,请先下载源码:ARouter 最近阅读ARouter源码,发现这真的是一个非常优秀的框架。激发出兴趣来读一下他的源码,实际上,这个框架的结构非常简单。这个框架可以分为主流程和辅助流程来拆开分析。 主流程包含编译时和运行时两个部分,其中编译时主要做的是路由路径表的构建,运行时主要做的是路由路径表的加载; 辅助流程主要就是做启动优化。 主流程1. 编译时这部分主要涉及到的是路由路径表的构...

源码分析 #Android