这一篇可以看做是 Handler 的番外篇。
ThreadLocal
看 Looper 源码的过程中,我们肯定看到过 Looper.myLooper() 的使用,它可以获取与当前线程关联的 Looper 对象,那这个关联是怎么建立起来的?就是通过 ThreadLocal。
继续阅读 »
大家好,博客断更将近三个月之后,终于可以恢复了。近期将要带来的,是一系列安卓系统的基础知识。这些内容其实也算是我对自己知识的一次整理,虽然日常开发工作可能用得不多,但这些基本的东西还是应该扎实地掌握,毕竟如果要参加面试,免不了要回答这些问题的 :)
继续阅读 »
2016 年终于过去,可以松口气,捋一捋过去的 376 天了。
新年农历初五,翻译了第一篇 NimbleDroid 的博客,不算什么了不起的大事,但自己增长见识的同时,也能给别人一点帮助,就挺好。后来一直坚持翻译他们的每一篇博客,虽然最后有几篇没时间翻译,但今天拜访了他们的创始人,贵系俊峰师兄,自己一点微不足道的工作得到了认可,我很高兴。
继续阅读 »
RxJava 最大的两个特点:事件流操作,异步。
组合利用各种操作符,我们可以实现复杂的事件流处理需求,例如前文中提到的缓存{:target="_blank"}:根据一组 id,先从本地查询,本地缺失的部分再从服务器获取,再把两者合并起来返回,最后服务器获取的部分还要保存到本地。
继续阅读 »
今年国庆假期,我依然没有出去。那我在家做了些什么?
大抵就是三件事:给家里的宝宝做了一顿丰盛的排骨;一口气翻译了六篇 Advanced RxJava 博客,完成了六周的量,目前这个系列还有 18 篇文章,预计 5 个月之后就能翻译完;花了 50 个小时,验证了 AndroidTDDBootStrap{:target="_blank"} 在开启安卓新项目时的强大优势,怎么验证的?花了 50 个小时,就开发出了一个复杂的信息中心 APP 1.0 版本,架构先进,可维护性与可扩展性极佳。
继续阅读 »
渊源
我从 15 年 9 月份开始了解到快速打包相关的技术,此时已经饱受 Gradle 打包龟速的痛苦,一次 one line edit build 就要一分半钟。
首先了解到的是 LayoutCast,但由于它只支持 Android 5.0 以上(ART)的手机,虽然 5.0 的测试机肯定有,但还有大多数测试机不是 5.0,还是有很多时候会比较慢,所以没有采用。
继续阅读 »
RxJava{:target="_blank"} 这个项目已经持续四年半了,第一个 commit 是在 2012 年 3 月 18 号。我从 14 年 11 月份开始使用 RxJava,应该算是比较早的,将近两年过去了,现在 RxJava 1.x 版本已经进入稳定期,2.0 版本也已经进入了 RC 阶段。
继续阅读 »
在拆轮子系列:拆 Okio{:target="_blank"} 最后我曾说过会对 Retrofit、OkHttp、Okio 三者进行一个小结,并且整理一套网络层的“微架构”,今天终于得以完成,在这里一起奉送给大家 :)
继续阅读 »
在拆轮子系列:拆 Okio{:target="_blank"} 最后我曾说过会对 Retrofit、OkHttp、Okio 三者进行一个小结,并且整理一套网络层的“微架构”,今天终于得以完成,在这里一起奉送给大家 :)
继续阅读 »