Android 经典百大框架源码解析
引言
作为 Android 开发者,我们每天都要与代码打交道。经过数年的学习,大多数程序员已经能够'写'代码,或者至少是拷贝并修改现有代码。然而,我们教授编程的方式往往强调编写代码的艺术,而不是如何阅读代码。当我说'阅读代码',我是指有意地专门阅读代码。
众所周知,编程和写作有诸多相同之处。唐纳德·克努特甚至引入了文学编程(literate programming)编程范式。编程与写作有相同的理念:表达我们的想法。还记得你在学校是怎么学习写作的吗?我们的写作能力来源于从小学开始直到现在的大量的文本阅读。多年以来,我们阅读了不同难度的伟大作家的作品,并练习了多种写作技巧。
'如果你没时间读,你就没时间(或工具)写,就这么简单。' —— 斯蒂芬·金,《写作这回事:创作生涯回忆录》
正如斯蒂芬·金所观察到的那样,一个作家必须广泛而频繁地阅读,才能形成自己的声音,并学会写出促使读者拿起书并痴读的句式和故事结构。和读书一样,有意地阅读代码可以帮助程序员加速成长,尤其是对中级程序员而言。
为什么选择这些框架
有这么多优秀源码可供选择,我们该选择并阅读什么样的源码呢?你必须从选择目标开始。如果不在这个步骤上下点功夫,你从源码中学习的效果就会打折扣。这里分享的 Android 百大框架源码解析,涵盖了 Android 领域经典著名的项目源码,相信会大幅度提升我们的编写代码能力。
榜单排序依据如下:
- 项目开源且维护活跃。
- GitHub 上该项目的 Star 个数及社区影响力。
- 开发团队、作者的技术实力及行业认可度。
为了保证榜单内容的多样性,榜单上尽可能不重复同类型框架(例如多款 ListView 增强框架),但涵盖了网络、图片、依赖注入、UI、工具等多个维度。
框架分类概览
为了便于理解,我们将这 97 个框架分为以下几大类进行介绍:
1. 网络通信类
- Retrofit: 类型安全的 HTTP 客户端。
- OkHttp: 高效的 HTTP/HTTP2 客户端。
- Volley: Google 推出的网络请求库。
- DroidAsyncHttp: 异步 HTTP 请求库。
- FileDownloader: 强大的文件下载管理。
2. 图片加载与处理类
- Glide: 专注于流畅划动能力的图片加载和缓存框架。
- Picasso: 强力图片下载、缓存框架。
- Fresco: Facebook 出品的高性能图片加载库。
- MPAndroidChart: 图表绘制库。
- PhotoView: 图片缩放查看器。
- CircleImageView: 圆形图片视图。
- Luban: 图片压缩工具。
3. 依赖注入与注解类
- Dagger: 完整的依赖注入框架。
- Butter Knife: 使用注解生成模板代码,将 View 绑定。
- AndroidAnnotations: 简化 Android 开发的注解处理器。
- EventBus: 本地组件间通信框架。
- RxJava/RxAndroid: 响应式编程扩展。
4. UI 与交互类
- SlidingMenu: 侧滑菜单。
- MaterialDialogs: Material Design 风格对话框。


