叶志陈

LV1
发表了文章

偿还技术债(5)-LeakCanary源码详解

LeakCanary 是由 Square 公司开源的用于 Android 的内存泄漏检测工具,可以帮助开发者发现内存泄露情况并且找出泄露源头,有助于减少 Out...

叶志陈
发表了文章

偿还技术债(4)-ARouter自己实现一个?

上一篇文章中对 ARouter 的源码进行了一次全面解析,原理懂得了,那么就也需要进行一次实战才行。对于一个优秀的第三方库,开发者除了要学会如何使用外,更有难度...

叶志陈
发表了文章

偿还技术债(3)-ARouter源码详解

路由框架在大型项目中比较常见,特别是在项目中拥有多个 moudle 的时候。为了实现组件化,多个 module 间的通信就不能直接以模块间的引用来实现,此时就需...

叶志陈
发表了文章

偿还技术债(2)-EventBus自己实现一个?

上一篇文章中对 EventBus 的源码进行了一次全面解析,原理懂得了,那么就也需要进行一次实战才行。对于一个优秀的第三方库,开发者除了要学会如何使用外,更有难...

叶志陈
发表了文章

Java 多线程编程(“锁”事碎碎念)

对于多个线程间的共享数据,悲观锁认为自己在使用数据的时候很有可能会有其它线程也刚好前来修改数据,因为在使用数据前都会加上锁,确保在使用过程中数据不会被其它线程修...

叶志陈
发表了文章

Java 多线程编程(聊聊线程池)

线程是一种昂贵的系统资源,其“昂贵”不仅在于创建线程所需要的资源开销,还在于使用过程中带来的资源消耗。一个系统能够支持同时运行的线程总数受限于该系统所拥有的处理...

叶志陈
发表了文章

从源码看 Jetpack(6)-ViewModel源码详解

在两个多月前我开始写 从源码看 Jetpack 系列文章,从源码角度介绍 Jetpack 多个组件实现原理,写了一半就停笔去写 Java 多线程编程 的文章去了...

叶志陈
发表了文章

从源码看 Jetpack(7)-SavedStateHandle源码详解

对于以上两种情况,我们当然希望 Activity 重建时之前加载的数据以及用户状态都能够得到恢复,每种情况目前都有着不同的恢复方法

叶志陈
发表了文章

两万六千字带你Kotlin入门

开头先说一下,我不是标题党,本教程真的有两万六千字(严格点说应该是两万六千五百八十四),但由于掘金单篇文章文字总数限制,所以只能发出来一部分,完整文章请看 Gi...

叶志陈
发表了文章

偿还技术债(1)-EventBus源码详解

我们知道,EventBus 在有消息被发送出来时,可以直接为我们回调该消息的所有监听方法,回调操作是通过反射 method.invoke 来实现的。那么 Eve...

叶志陈
发表了文章

自己动手改造 Jetpack LiveData

Jetpack LiveData 这个组件对于现在的 Android 开发者来说应该是很熟悉的了吧?那么,你是否也曾经困扰于以下的业务场景呢?(哈哈哈哈哈,你必...

叶志陈
发表了文章

从源码看 Jetpack(5)-Startup源码详解

最近,Google Jetpack 官网上新增了一个名为 App Startup 的组件,链接:App Startup。根据官方文档的介绍,App Startu...

叶志陈
发表了文章

从源码看 Jetpack(4)-LiveData衍生

上篇文章介绍了关于 LiveData 类的源码解析,本篇文章再来介绍下 LiveData 的一系列衍生类及衍生方法

叶志陈
发表了文章

从源码看 Jetpack(3)-LiveData源码解析

LiveData 是 Jetpack 的基础组件之一,在很多模块中都可以看到其身影。LiveData 可以和生命周期绑定,当 Lifecycle(例如 Acti...

叶志陈
发表了文章

从源码看 Jetpack (1)-Lifecycle源码解析

Lifecycle 是 Jetpack 整个家族体系内最为基础的内容之一,正是因为有了 Lifecycle 的存在,使得如今开发者搭建依赖于生命周期变化的业务逻...

叶志陈
发表了文章

从源码看 Jetpack (2)-Lifecycle衍生

上篇文章详细讲述了 Lifecycle 的整个事件分发逻辑,本篇文章再来介绍下 Lifecycle 的几个开发者比较容易忽略的衍生产物

叶志陈
发表了文章

【译】kotlin 协程官方文档(9)-选择表达式(实验阶段)(Select Expression (experimental))

我们现在有两个字符串生产者:fizz 和 buzz 。其中 fizz 每 300 毫秒生成一个字符串“Fizz”:

叶志陈
发表了文章

【译】kotlin 协程官方文档(8)-共享可变状态和并发性(Shared mutable state and concurrency)

可以使用多线程调度器(如 Dispatchers.Default)并发执行协程,它呈现了所有常见的并发问题。主要问题是对共享可变状态的同步访问。在协程作用域中解...

叶志陈
发表了文章

【译】kotlin 协程官方文档(7)-异常处理(Exception Handling)

本节讨论协程关于异常的处理和取消异常。我们已经知道,取消协程会使得在挂起点抛出 CancellationException,而协程机制会忽略这个异常。但是,如果...

叶志陈
发表了文章

【译】kotlin 协程官方文档(6)-通道(Channels)

Deferred 值提供了在协程之间传递单个值的方便方法,而通道(Channels)提供了一种传输值流的方法

叶志陈

个人简介

个人成就

扫码关注云+社区

领取腾讯云代金券