6 Elson_6

尚未进行身份认证

我要认证

Talk is cheap, show me the code.

等级
TA的排名 2w+

Maven系列(一) — Nexus 下载及配置

Nexus 是 Maven 仓库管理器,如果我们使用 Maven,可以从 Maven 中央仓库下载所需要的构件(artifact),但这会受到 Maven 中央仓库是影响 (诸如:带宽),因此我们可以在本地架设一个 Maven 仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。

2020-06-20 08:49:56

Maven系列(二) — 发布项目到 Maven 仓库私服

上一篇我们搭建好了 Maven 仓库私服,接下来我们来了解一下如何将本地文件上传到 Maven 私仓。

2020-06-21 16:33:44

Glide系列(二) — Glide 注册模块分析

Glide 是一个图片加载库,跟它同类型的库还有 Picasso、Fresco、Universal-Image-Loader 等。Glide 框架的优点如下:1. 加载类型多样化:Glide 支持 Gif、WebP 等格式的图片。2. 生命周期的绑定:图片请求与页面生命周期绑定,避免内存泄漏。3. 高效的缓存策略: 1. 支持多种缓存策略 (Memory 和 Disk 图片缓存)。 2. 根据 ImageView 的大小来加载相应大小的图片尺寸。 3. 内存开销小。

2020-06-07 11:41:25

Glide系列(一) — Glide 框架结构浅析

Glide 是一个图片加载库,跟它同类型的库还有 Picasso、Fresco、Universal-Image-Loader 等。Glide 框架的优点如下:1. 加载类型多样化:Glide 支持 Gif、WebP 等格式的图片。2. 生命周期的绑定:图片请求与页面生命周期绑定,避免内存泄漏。3. 高效的缓存策略: 1. 支持多种缓存策略 (Memory 和 Disk 图片缓存)。 2. 根据 ImageView 的大小来加载相应大小的图片尺寸。 3. 内存开销小。

2020-06-05 21:52:50

RxJava(四) — 实现一个简易版的 RxJava 框架

RxJava 是一个响应式编程框架,里面代码比较复杂,本系列文章将从以下几个角度来分析这个框架。1. RxJava 的链路调用流程。2. RxJava 的常用操作符 `map、flatmap`。3. RxJava 的线程调度。4. 自己实现一个简易版的响应式框架。

2020-06-01 16:46:33

RxJava(三) — 线程调度实现原理

RxJava 是一个响应式编程框架,里面代码比较复杂,本系列文章将从以下几个角度来分析这个框架。1. RxJava 的链路调用流程。2. RxJava 的常用操作符 `map、flatmap`。3. RxJava 的线程调度。4. 自己实现一个简易版的响应式框架。

2020-05-31 22:28:27

RxJava(二) — 常用操作符之 map & flatmap

RxJava 是一个响应式编程框架,里面代码比较复杂,本系列文章将从以下几个角度来分析这个框架。1. RxJava 的链路调用流程。2. RxJava 的常用操作符 `map、flatmap`。3. RxJava 的线程调度。4. 自己实现一个简易版的响应式框架。

2020-05-31 11:01:37

RxJava(一) — 链路调用流程分析

RxJava 是一个响应式编程框架,里面代码比较复杂,本系列文章将从以下几个角度来分析这个框架。1. RxJava 的链路调用流程。2. RxJava 的常用操作符 map、flatmap。3. RxJava 的线程调度。4. 自己实现一个简易版的响应式框架。

2020-05-30 20:06:00

设计模式 — 观察者模式

观察者模式一、概述二、类图三、推模型的示例代码四、拉模型的示例代码一、概述观察者模式又称订阅者模式,是一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自己更新自己。在观察者模式中,又分为推模型和拉模型两种方式:推模型: 主题对象向观察者推送主题的详细信息,不管观察者是否需要,推送的信息通常是主题对象的全部或部分数据。.拉模型: 主题对象在通知观察者的时候,只传递少量信息。如果观察者需要更具体的信息,由观察者主动到主题对

2020-05-30 10:02:48

SPI 机制(二) — AutoService 解析

SPI 全称为`Service Provider Interface`,是JDK内置的一种服务提供发现机制。简单来说,它是一种动态替换发现机制。例如,在设计组件化路由框架的时候就会使用到 SPI 设计思想。

2020-05-29 13:21:22

SPI 机制(一) — ServiceLoader 解析

SPI 全称为`Service Provider Interface`,是JDK内置的一种服务提供发现机制。简单来说,它是一种动态替换发现机制。例如,在设计组件化路由框架的时候就会使用到 SPI 设计思想。

2020-05-29 11:56:12

BlockCanary 源码分析

BlockCanary 源码分析一、概述二、实现原理三、源码分析1. 初始化流程2. 堆栈信息采集过程3. CPU信息采集过程四、小结一、概述在 Android 开发过程中,经常会遇到 UI 卡顿的问题,那怎么去监测 UI 的卡顿呢?今天我们就来分析一款监测 UI 卡顿的框架:BlockCanary。BlockCanary 是一个轻量的,非侵入式的性能监控组件,目前采集了 UI 卡顿相关的 线程堆栈信息 和CPU 使用信息,用于分析定位问题。Github 传送门: https://github.co

2020-05-24 11:02:33

LeakCanary 源码分析

LeakCanary 源码分析一、概述二、原理三、源码分析1. LeakCanary 的初始化2. Activity 的监测3. 如何判断观察对象是否内存泄漏一、概述在 Android 开发过程中会遇到内存问题,在内存问题的分析中有一项必不可少的环节是对 hprof 文件的分析,常见的 MAT 和 Leakcanry 都是针对hprof文件的分析工具。本文我们来分析一下 Leakcanry 的检测原理。二、原理弱引用: 在垃圾回收时,无论内存是否充足,都会将弱引用包装的对象回收。当JVM进行垃

2020-05-22 00:02:02

ClassLoader (二) — 浅析 PathClassLoader 和 DexClassLoader 的区别

浅析 PathClassLoader 和 DexClassLoader 的区别一、概述二、 PathClassLoader 和 DexClassLoader 构造方法的区别三、optimizedDirectory 参数的使用1. DexPathList 中的流程2. DexFile 中的流程3. Native 层的流程4. 流程图四、Android 8.0 的版本五、参考一、概述在 Andr...

2020-05-08 16:02:27

ClassLoader (一) — Android 中的 ClassLoader 体系

Android 中, DVM 或 ART虚拟机加载的是 Dex 文件,因此 Androd 中自定义了部分 ClassLoader 来实现类的加载。Android 中的 ClassLoader 类型分为两种:1. 系统类加载器。系统类加载器主要包括 3 种,分别是BootClassLoader 、 PathClassLoader 和 DexClassLoader。2. 自定义加载器。

2020-05-08 18:45:15

Window系列 (二) — WindowManagerService 浅析

WindowManagerService 详解一、概述二、一、概述二、

2020-04-26 21:45:02

Window系列 (三) — Activity、Window、DecorView 的关系

Activity、Window、DecorView 的关系一、概述一、概述

2020-04-26 15:27:55

Window系列 (四) — Touch 事件是如何传递到 Activity ?

Touch 事件是如何传递到 Activity ?一、概述一、概述

2020-04-26 11:48:03

Window系列 (一) — WindowManager 详解

WindowManager 详解一、概述二、WindowManager 体系1. 类图2. 源码分析2.1 `ViewManager` 的结构2.2 PhoneWindow 对象何时创建?2.3 WindowManagerImpl 类三、Window 的属性 (类型和显示次序)四、Window 的操作1. Window 的添加过程2. Window 的更新过程3. Window 的删除过程4. I...

2020-04-25 23:30:00

View系列 (五) — Draw 流程详解

Draw 流程详解一、概述二、单一 View 的 Draw 过程1. 流程图2. 源码分析三、ViewGroup 的 Draw 过程1. 流程图2. 源码分析一、概述在执行完 measure 流程、layout 流程后,如果我们要将 View 展示在界面上,需要执行 draw 流程 。与 measure 流程、layout 流程 类似, draw 流程 也分为以下两种场景。View...

2020-04-24 14:00:45

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。