前言
我觉得每个人可能都有过看源码的想法吧,也包括我。因为看源码不光能使自己对这个库更加熟悉,还能学习到作者强大的思想,久而久之,自己的水平和思想也会有明显的提升的。
但对于我来说,之前从来没有阅读过源码,想阅读源码却不敢迈出那一步,因为一个成熟的库有着太多的方法、逻辑,阅读起来可能会比较困难,所以在阅读前要掌握方法。
问题驱动——不要为了看源码而看源码
首先我们要明确一点,看源码的目的是什么?
我个人的意见是,看源码是为了解决问题。开源项目的源代码并没有什么非常特殊的地方,也都是普通的代码。这些代码的数量级一般都挺大,如果想是从源码中学到东西,直接浏览整个 Codebase 无疑是大海捞针。
但如果是带着问题去看源码,比如想了解什么时候可以拿到图片的宽高;DelayLoad 怎么做才会更合适;Service 什么时候启动可以不影响启动速度;Activity onResume 回调的时候真的可见了么?也有可能是遇到了一个 bug,怀疑是框架/工具的问题。在这样的情况下,带着一个具体的目标去看源码,就会有的放矢。
看源码怎么看,当然不能一把梭了。
看源码之前需要对项目的原理有一个基本的了解。所谓原理就是,这个项目有哪些组成部分,为了达到最终的产出,要经过哪几步流程。这些流程里,业界主流的方案有哪几种。
很多人不知道去那里阅读源码或者不清楚业内的主流源码是哪些,那么这里分享一份某里大佬整理过这样源码解析,就是这个《Android 开发相关源码精编解析》。
《Android 开发相关源码精编解析》组织结构
这份手册采用由浅入深的方式介绍当下Android主流源码技术原理,分为 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 源码
结语
坚持阅读源码这个事情是很可怕的,但是如果你坚持做到了,那么你将锻造出来自己最硬核的技术实力,远远不是普通人,或者刚毕业的年轻同学可以追上你的。技术深度、技术功底,这是每一个工程师最最硬核的技术实力。
源码笔记获取方式:
![](https://img-blog.csdnimg.cn/img_convert/d7f2feacc48c4feb65e85423ae726eae.png)