6 Elson_6

尚未进行身份认证

我要认证

Talk is cheap, show me the code.

等级
TA的排名 2w+

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 中的 ClassLoader 体系一、概述二、三、一、概述二、三、

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

View系列 (四) — Layout 流程详解

Layout 流程详解一、概述二、单一 View 的 Layout 过程1. 流程图2. 源码分析3. 小结三、ViewGroup 的 Layout 过程1. 流程图2. 源码分析四、Layout 过程跟 Measure 的一个区别1. 以 LinearLayout 为例,Measure 流程对应代码2. 以 LinearLayout 为例,Layout 流程对应代码一、概述在 View 的 ...

2020-04-24 11:15:32

View系列 (三) — Measure 流程详解

Measure 流程详解一、概述二、单一 View 的测量流程1. 流程图2. 源码分析三、ViewGroup 的测量流程1. 流程图2. 源码分析一、概述测量过程分为 View的measure过程 和 ViewGroup的measure过程。View的类型measure 过程单一的View (如 ImageView)只测量自身ViewGroup遍历测量该 Vi...

2020-04-24 00:31:44

View系列 (二) — MeasureSpec 详解

MeasureSpec 详解一、概述二、MeasureSpec 的构成1. MeasureSpec 中的常量2. MeasureSpec 提供的方法三、MeasureSpec 的使用1. 根 View 大小的测量2. 非根 View 大小的测量一、概述在 View 的测绘 (measute()) 过程中,会用到 MeasureSpe (测量规格)。MeasureSpec的作用确切来说,M...

2020-04-23 21:19:22

View系列 (一) — Android 坐标系

自定义View — Android 坐标系一、概述二、坐标系1. Android 坐标系2. View坐标系一、概述Android 中 View 分为两种类型,一种为内部可以包含其它子 View 的 ViewGroup 类型,另一种内部不可以再包含其它子 View 的 View 类型。一个页面上的元素大致如下图所示:类型控件View:TextView、Button...

2020-04-23 15:39:15

查看更多

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