学习目的
之所以总结三方库源码,是想通过阅读源码来学习设计者初衷,包括设计模式、计算机架构原理体现,并不是为了应付面试,而是真正的理解设计者意图,模仿思路,提升自己的编码水平
- 学习开源库相关的问题,要想学的好,就得自己想清楚几个问题,这几个问题想清楚了,就可以随便回答了。
- 这个库是做什么用的?
- 为什么要在项目中使用这个库?
- 这个库都有哪些用法?对应什么样的使用场景?
- 这个库的优缺点是什么,跟同类型库的比较?
- 这个库的核心实现原理是什么?如果让你实现这个库的某些核心功能,你会考虑怎么去实现?
- 你从这个库中学到什么有价值的或者说可借鉴的设计思想?
- 源码核心部分要自己手写
主流三方库:
-
网络:
- OKHttp
- Retrofit
-
图片:
- Glide
-
响应式编程:
- RxJava
-
内存泄露:
- LeakCanary
-
依赖注入:
- ButterKnife
- Dagger2
-
事件总线:
-
路由机制
- ARouter
-
BlockCanary
-
数据库:
- GreenDao