自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

为战而生的博客

站在巨人的肩膀上学习

  • 博客(10)
  • 收藏
  • 关注

原创 Android EventBus 源码解析

基于最新的 3.1.1 分析 前言 之前分析的都是官方库的一些源码,现在打算尝试分析一些比较优秀的第三方开源库,选择分析EventBus,一方面是因为他的库不大,容易理解,这样我们也容易接受,如果一开始就项分析很大的库,会比较难吧。 是什么东西? EventBus 是一个基于Android 或者Java 的发布订阅的消息总线,从使用上来说,它允许我们通过注解,就能在Android ...

2018-08-21 17:25:54 312

原创 Android Handler 源码解析

前言 我相信,用过Android的人基本都会使用Handler,或者多多少少会听到这个东西,在安卓里面,这东西太重要了,如果你还不会基本用法,那应该是需要反省一下。当然,用过它的人也不必沾沾自喜,我们真的很了解Handler吗,还是说只会使用?你有看过他的每一行代码?仔细思考过吗?对于我来说,确实没有,所以我带着问题,想全面了解 Handler。 是什么东西? handler,英文有(信...

2018-08-21 17:25:06 168

原创 Android HandlerThread 源码解析

前言 这个东西看着很高端的感觉,刚开始没明白这是用来干啥用的,他的源码也很简单,简单到都想不出来他的场景,后面看到以博客毛瑟顿开,HandlerThread的特点,大概就是说,它用子线程的Looper,使我们的消息在子线程中处理,通常我们都是绑定了主线程的 MessageQueue,一定程度上加大了主线程消息处理的负担。在子线程中处理消息,自然也不能处理消息,可以处理一些后台的任务,但是他是串行...

2018-08-21 17:24:34 238

原创 Android AsyncTask 源码解析

是什么东西? 顾名思义,异步任务,就是说我们可以让我们异步执行任务,不过通常使用它是为了异步执行,主线程更新UI,我们都知道,Android 的UI更新操作,都会检查是否是主线程,如果不是的话就会报出异常,这一步是在ViewRootImpl里面做的,这里就不多说了。在使用的时候,我们只需要将后台处理的代码写在doInBackground,更新UI的工作写在onPostExecute就行了,就可以...

2018-08-21 17:23:37 154

原创 Android LruCache 源码解析

LruCache 是什么东西? LRU 咋一看这么熟悉,操作系统里面内存管理,页面置换时替换算法之一,英文全拼为Least Recently Used 以为最近最少使用,简单来说,就是替换掉最老的数据。其核心思想为如果数据最近被访问过,那么将来被访问的几率也更高。另外一个比较简单的算法是 FIFO,First In First Out 先进先出,就是淘汰最先使用的,也就是说留下最近使用的,看似这...

2018-08-21 17:22:56 227

原创 Android SparseArray 源码解析

是什么东西? sparse 是稀疏的意思,顾名思义,是一个稀疏数组,但实际上,他是一个key 只能为 int 的key-value 的数据结构,类似于HashMap Android Developer 中对它的解释 SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be g...

2018-08-21 17:22:13 166

原创 Java8 ThreadLocal 源码解析

前言 ThreadLocal ,像是一个神秘的黑衣人,令人望而生畏。唯有下定决心,一探究竟,方能解开他神秘的面纱、在Android中,Handler,EventBus,ConnectionPool 等等,都曾出现它的身影 是什么东西? 看到Thread,就想到应该是与线程有关吧,其次,Local是说本地,那组合起来就是线程私有,就是说每个线程都有备份,各备份不是同一个对象,一般来说,他的...

2018-08-21 17:20:47 283

原创 Java8 PriorityQueue 源码解析

PriorityQueue 优先级队列 前世今生 extends AbstractQueue AbstractQueue extends AbstractCollection implements Queue 实现原理大白话 内部使用你所熟悉的数据结构最堆来实现,每次都是取堆顶的元素。至于堆怎么实现,其实很简单,就一个数组而已,这里就不讨论怎么实现堆了。默认是根据传入的对象进行...

2018-08-21 17:20:05 384

原创 Java8 LinkedBlockingQueue 源码解析

LinkedBlockingQueue 链表阻塞队列 链表阻塞队列,顾名思义,也就是一个基于队列的阻塞式的链表实现,里面的代码写的很漂亮,生产者消费者模式在这个类中用的酣畅淋漓,其作者是大名鼎鼎的 Doug Lea,掌握这个类是比较重要的。里面很多实现基于锁,可以好好学习一下。 前世今生 继承自AbstractQueue 实现了 BlockingQueue,那我们就来看一下有哪些接口,...

2018-08-21 17:18:00 875

原创 Java8 CopyOnWriteArrayList 源码解析

前言 一看这个,咋这么长的名字,记起来有点麻烦呀!这个类使用的情况不多,最近在看EventBus的时候看到过,所以还是跳出来学习一下,看一下这个类的庐山真面目 是什么东西? CopyOnWrite,大概能猜到跟写时复制有关,为什么要有这个东西?不难想出这是为了线程安全而设计的,否则直接用 ArrayList 就行了,那好了,说的这个东西就是一个ArrayList ,在此基础上,他是线程安...

2018-08-21 17:16:16 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除