说说 getMainLooper

关于 Handler、Looper、MessageQueue,我想大家都了解的差不多了,简单来说就是一个 Handler 对应一个 Looper,一个 Looper 对应一个 Message。那么再想个问题,一个 Handler 可以对应多个 Looper 吗? 一个 Looper 可以对应多个 Handler 吗?

HandlerThread 源码解析

Android 为我们提供好了一个类——HandlerThread,在其内部维护了一个 Looper 对象,通过线程的 start 方法启动后即可创建内部的 Looper 对象,并且此 Looper 对象运行在子线程,我们还可以通过 handlerThread.getLooper() 来取到这个 Looper 对象,免得我们自己创建了。

自己真正读过的好书

网上总是能看到各种推荐的所谓 “程序员必读” 书籍,但这些书籍可能连推荐人本身都没有读过或读完——只是推荐的人多了,自然就成了”好书”而已。下面所列的每一本书,我自己肯定都是从头到尾读完了的,并且觉得大有裨益。

Android 群英传读书笔记

偶然在知乎上看到了关于《Android 群英传》的介绍,感觉还不错,尤其是作者前言中写的内容和我简直心照不宣——Android 学习的瓶颈与进阶,读了快半本了,感觉非常不错,不合适初学者,但绝对适合学习到了瓶颈期,想要突破自我的 Android 开发者,比如我。

JIT 学习笔记

JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一。但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度。

BlockingQueue 浅层次总结

AsyncTask、ThreadPool 中都会用到 BlockingQueue,这是一个接口,它实现的子类有:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue。本文简要分析总结下 ArrayBlockingQueue。

CopyOnWrite 浅层次总结

同 ConcurrentHashMap 一样,CopyOnWrite 也是一种多线程并发中使用的容器,实现起来要比 ConcurrentHashMap 简单不少。从 JDK1.5 开始 Java 并发包里提供了两个使用 CopyOnWrite 机制实现的并发容器,它们是 CopyOnWriteArrayList 和 CopyOnWriteArraySet。CopyOnWrite 容器非常有用,可以在非常多的并发场景中使用到,下面就来浅层次总结一下。