- 00 | Android 高级进阶(源码剖析篇) 前言
- 01 | Android 高级进阶(源码剖析篇) 小而美的日志框架 timber(上)
- 02 | Android 高级进阶(源码剖析篇) 小而美的日志框架 timber(下)
- 03 | Android 高级进阶(源码剖析篇) 便于性能分析的日志框架 hugo
- 04 | Android 高级进阶(源码剖析篇) 优美的日志框架 logger
- 05 | Android 高级进阶(源码剖析篇) Twitter 的高性能序列化框架 Serial(一)
- 06 | Android 高级进阶(源码剖析篇) Twitter 的高性能序列化框架 Serial(二)
- 07 | Android 高级进阶(源码剖析篇) Twitter 的高性能序列化框架 Serial(三)
- 08 | Android 高级进阶(源码剖析篇) Square 高效易用的 IO 框架 okio(一)
Android 发展到现在,已经接近 10 个年头了,但在平时的招聘面试过程中,我发现很多开发者其实对工程实践中很多通用技能点要么没听说,要么掌握的不全面。于是就有了《Android 高级进阶》一书。
在这本书的内容简介中有说到,本书是 Android 的进阶学习指南,主要是 Android 初中级开发者进阶所需的知识点,高级开发者也可以从中发现很多共鸣点。本书的主要目的在于给读者一个完整的 Android 中高级开发者的知识图谱,旨在为初中级开发者在技术上更上一层楼提供必要的知识储备,当然,某些知识点如果要讲完整,可以单独成书,限于篇幅,类似这样的少量几个知识点只能点到为止,但相信读完此书后,在 Android 研发这条道路上你的视野会更开阔,在技术选型,方案讨论中会具备更多的决策能力。
但是有些读者读完《Android高级进阶》一书,总感觉意犹未尽。有的反馈如果部分知识点能够深入讲解就更好了,例如书中提到的开源框架的实现原理。在这本书中我确实介绍了不少常用的开源框架,特别是在系统架构篇中的《基于开源项目搭建属于自己的技术堆栈》一节,介绍了搭建一个应用所需的通用基础能力涉及到的开源框架,当时在这本书中想要讲清楚这些框架的整体架构和核心原理等不仅篇幅不允许,也不符合这本书的定位。
这本书开始于 2015 年,出版于 2016 年,这两年是国内外 Android 领域蓬勃发展的时期,特别是 2016 年。到了今年,也就是 2017 年,可以说 Android 已经处于一个成熟稳定期,今年几乎没有什么新鲜的东西出现,很多都是在炒冷饭了。一个技术领域发展到了这种时期,是时候让我们沉下心来深入常用框架的内部,了解其底层实现,一方面进一步加强自身的技术积累,另一方面也能够让自己在众多的开发者中脱颖而出。
当然,源码剖析是一个费力不讨好的工作,网上也有很多人尝试做系列的剖析,但都没能坚持下来,往往写了几篇之后就因为各种原因搁置了;也有些人尝试通过多人协作的模式,虽然量是出来了,质却良莠不齐,文章的风格和架构也不统一。还有些人对框架的解析重点放在架构设计上,对代码实现细节介绍很少。但往往细节才是魔鬼,架构理解得再好,还是要通过代码一行一行来实现,对于大多数开发者来说,对架构得理解固然重要,但实际工作中更多的还是对细节的处理,PPT 工程师毕竟占少数。
以上是费力,不讨好指的是对大多数开发者而言,他们其实并不想了解项目中所用框架的实现细节,毕竟工作中只是实现业务代码,写写 if else,他觉得了解底层细节对他没什么用。看看技术图书市场,销量最高的往往是那些入门类图书,看看网上的技术文章,点赞数高的往往是一些 awesome 类的文章。当然这和技术人员的金字塔分布也有一定关系。初中级开放人员总是占多数。但你有没有想过,那些高级工程师,资深工程师,架构师是如何升上去的呢?想在技术线往上升,起码在技术上你得有别于其他人的竞争力。对框架的透彻理解就是提升竞争力的方式之一。
为了更进一步说明阅读源码的重要性,在此,我引用下 2013 年写的一篇文章中的一段话:
Android 应用开发已经进入到相对成熟的阶段,特别在国外,涌现出了各式各样的成熟稳定的开源库,供普通开发者使用。这种情况虽然极大加速了 app 开发的进程,但同时带来的问题是大多数普通开发者在使用这些开源库的时候只是止步于知道怎么使用它,但对开源库的底层实现原理并不清楚,或者不怎么深究,导致的问题很多:
1)当开源库出现 bug 时,不能够很好很快的定位出问题;
2)自己日常的代码编写只局限于实现 app 的业务逻辑,太上层,对技术水平的提升没有多大的好处;
3)对追求完美的人来说,只有对自己项目中所有代码实现的原理都清楚的时候,才会安心,才会有成就感;
4)当自己项目需要写基础库代码时,如果已经熟知各种开源库的实现,那么更能设计出好的架构,写出好的代码。
以上是 《Android高级进阶(源码剖析篇)》的缘起,以下是初版的目录,我们剖析的基本上都是久经考验的知名框架。当然,想要完成目录中这些框架的剖析,本身需要很大的工作量,但万事要有个宏大的目标,让我们一步一步走下去。
网友评论