Piasy

NEVER STOP

安卓基础:Activity/Fragment 销毁与重建

Activity 的销毁与重建有两种情况:App 处在后台,由于内存紧张而被杀死,当用户回到 我们的 App 时,被杀掉的 Activity 会被重新创建;当手机配置发生变化时,例如旋转屏幕方向,Activity 会被重新创建。 当 Activity 被销毁时,在第一种情况中,它加载的 Fragment 显然也要被销毁,因为此时通常整个 App 都被杀死了,但第二种情况中,我们可以通过设置...

安卓基础:Activity/Fragment 生命周期

看图 developer 官方图: GitHub 神图: 回答问题 以下过程均是针对 AppCompatActivity 和 support Fragment,测试代码可以在 GitHub 获取。 单个 Activity + Fragment 的启动? Activity onCreate Fragment onAttach Fragment onCreate Frag...

Java 基础:ThreadLocal,HashMap

这一篇可以看做是 Handler 的番外篇。 ThreadLocal 看 Looper 源码的过程中,我们肯定看到过 Looper.myLooper() 的使用,它可以获取与当前线程关联的 Looper 对象,那这个关联是怎么建立起来的?就是通过 ThreadLocal。 我们可能会把 ThreadLocal 对象理解为一个 Map,它的 set 和 get 方法都有一个“隐形的” k...

安卓基础:Handler

大家好,博客断更将近三个月之后,终于可以恢复了。近期将要带来的,是一系列安卓系统的基础知识。这些内容其实也算是我对自己知识的一次整理,虽然日常开发工作可能用得不多,但这些基本的东西还是应该扎实地掌握,毕竟如果要参加面试,免不了要回答这些问题的 :) 水平有限,难免有失偏颇,欢迎大家指正! 今天先讲讲 Handler,如果被问到“讲讲你说 Handler 的理解”,怎么把这么一大串内容讲清...

YetAnotherDream

2016 年终于过去,可以松口气,捋一捋过去的 376 天了。 新年农历初五,翻译了第一篇 NimbleDroid 的博客,不算什么了不起的大事,但自己增长见识的同时,也能给别人一点帮助,就挺好。后来一直坚持翻译他们的每一篇博客,虽然最后有几篇没时间翻译,但今天拜访了他们的创始人,贵系俊峰师兄,自己一点微不足道的工作得到了认可,我很高兴。 从年初开始逐步总结在 YOLO 所做的事情,音频...

RxJava 复杂场景(二):调度

RxJava 最大的两个特点:事件流操作,异步。 组合利用各种操作符,我们可以实现复杂的事件流处理需求,例如前文中提到的缓存:根据一组 id,先从本地查询,本地缺失的部分再从服务器获取,再把两者合并起来返回,最后服务器获取的部分还要保存到本地。 而利用 subscribeOn 和 observeOn 这两个操作符,我们可以轻松地实现代码执行的异步调度。 但当我们的需求变得越来越复杂时,...

这个国庆假期我做了些什么?

今年国庆假期,我依然没有出去。那我在家做了些什么? 大抵就是三件事:;一口气翻译了六篇 Advanced RxJava 博客,完成了六周的量,目前这个系列还有 18 篇文章,预计 5 个月之后就能翻译完;花了 50 个小时,验证了 AndroidTDDBootStrap 在开启安卓新项目时的强大优势,怎么验证的?花了 50 个小时,就开发出了一个复杂的信息中心 APP 1.0 版本,架构先...

OkBuck,一周年啦!

渊源 我从 15 年 9 月份开始了解到快速打包相关的技术,此时已经饱受 Gradle 打包龟速的痛苦,一次 one line edit build 就要一分半钟。 首先了解到的是 LayoutCast,但由于它只支持 Android 5.0 以上(ART)的手机,虽然 5.0 的测试机肯定有,但还有大多数测试机不是 5.0,还是有很多时候会比较慢,所以没有采用。 这时候 BUCK 进...

拆轮子系列:拆 RxJava

RxJava 这个项目已经持续四年半了,第一个 commit 是在 2012 年 3 月 18 号。我从 14 年 11 月份开始使用 RxJava,应该算是比较早的,将近两年过去了,现在 RxJava 1.x 版本已经进入稳定期,2.0 版本也已经进入了 RC 阶段。 原本打算把 Advanced RxJava 系列博客翻译完之后再拆 RxJava 的,但是前两周看了一个 JW 讲 Rx...

RESTful 安卓网络层解决方案(三):API model 与 Business model 分离

在拆轮子系列:拆 Okio 最后我曾说过会对 Retrofit、OkHttp、Okio 三者进行一个小结,并且整理一套网络层的“微架构”,今天终于得以完成,在这里一起奉送给大家 :) RESTful 安卓网络层解决方案(一):概览与认证实现方案 RESTful 安卓网络层解决方案(二):空 JSON 和 API Error 解析 🏁 RESTful 安卓网络层解决方案(三):...