无论是Java还是Android,作为开发人员,只看API文档却不阅读源码,就只能永远停留在皮毛,无法完备的建立知识体系,也没法切实提升实战开发技术。
想要更系统、真切的提升自己的能力,阅读源码是一个非常好的方式:不仅限于阅读各大系统源码,还包括各种优秀的开源库。通过阅读源码,除了学习优秀的代码风格和设计思想,还能真正做到“知其然,并知其所以然”,从而指导自己更加灵活的使用API,更加快速地找到系统bug的根源
作为资深Android开发工程师,研究源码成为了他们提升自身技术的唯一标准。
笔者也是一名Android开发者,曾经有幸和阿里资深架构师聊过,他说目前我们公司面试比较喜欢问的问题自己有使用那些源码,有去研究第三方库,从广度和深度去挖掘。
我也了解到很多读者,尤其是初学者特别抗拒去看源码,这里我说明一下为什么要进行源码分析。其中包括下面一些好处:
学习Android源码有助于我们学习其中的设计模式、思想、架构。
熟悉整个源码的架构,有助于我们更加正确地调用 Android 提供的 SDK,写出高效正确的代码。
学习源码有助于我们面试,因为大公司都喜欢问这些。
学习源码有助于我们学习一些黑科技,比如学习插件化的从时候我们需要学习 Hook 机制,但是学习Hook机制的时候我们需要掌握Activity的启动流程、消息机制等等机制。
现在研究源码的人越来越多,只是很多开发者对阅读源码也非常头痛:目前网上各类源码解析的文章博客五花八门、良莠不齐。要么杂乱、零散、碎片化,看着看着就衔接不上了,要么内容深度不够,学不到干货。恰好发现有一个阿里大佬整理过这样源码解析,就是这个《Android 开发相关源码精编解析》。
这份手册采用由浅入深的方式介绍Flutter技术原理,分为 22 章,总计 558 页,整理目录如下:
1.深入解析微信 MMKV 源码
2.深入解析阿里巴巴路由框架 ARouter源码
3.深入解析 AsyncTask 源码(一款Android 内置的异步任务执行库)
4.深入解析 Volley 源码(一款 Google推出的网络请求框架)
5.深入解析 Retrofit 源码
6.深入解析 OkHttp 源码
7.深入解析 ButterKnife 源码
8.深入解析 Okio 源码(一套简洁高效的I/O 库)
9.深入解析 SharedPreferences 源码
10.深入解析 EventBus 源码
15.深入解析 Handler 源码
16.深入解析 Binder 源码
17.深入解析 JNI 源码
18.深入解析 Glide 源码
本手册不适合做为编程的入门读物。
至少熟悉一种编程语言。
最好接触过PC客户端、移动开发或Web前端开发中的一种。
本手册内容还有很多是以链接的形式整理收录的,如果对这些点感兴趣,可以自行进入探索。
本手册配合代码食用更佳。但是由于篇幅所限,手册中大多数示例代码都只是部分核心代码,读者可以去自行下载探索。
感谢Github开源项目的人以及很多博客大佬。另外尤其感谢给本书打赏过的同学,你们的支持给了我很大的鼓励。