Awesome-WanAndroid:一个把主流 Android 技术栈全用上的开源客户端 文章目录Awesome-WanAndroid一个把主流 Android 技术栈全用上的开源客户端技术栈覆盖了什么界面和交互细节适合谁看一点不足下载和使用Awesome-WanAndroid一个把主流 Android 技术栈全用上的开源客户端做 Android 开发的人多少都听过 WanAndroid。它是鸿洋维护的一个技术社区网站内容以 Android 开发为主API 全部开放。今天要聊的这个项目就是基于 WanAndroid API 做的一个第三方客户端目前在 GitHub 上拿到了 2700 多个 Star。这个项目叫 Awesome-WanAndroid作者是 JsonChao。说白了它就是一个技术文章阅读 App但作者的真正目的不是做一个能用的客户端而是把 Android 开发中主流的技术框架全部串了一遍做成一个可运行的示例项目。技术栈覆盖了什么项目用到的技术栈列出来挺长的MVP 架构、RxJava2、Retrofit、Dagger2、GreenDao、Glide、SmartRefreshLayout、Bugly。基本涵盖了 Android 开发中常见的网络请求、依赖注入、数据库、图片加载、刷新控件这几个方向。架构上采用的是 MVP 模式用 Dagger2 做依赖注入把 Model 注入 Presenter、Presenter 注入 View解耦做得比较干净。网络层用 Retrofit 加 RxJava2线程切换通过 Compose 操作符配合 RxUtils 工具类来简化。数据库用的 GreenDao图片加载用 Glide。这些技术单独拿出来都不稀奇但把它们整合到一个项目里让它们协同工作这个过程本身就有学习价值。很多开发者对单个框架都用过但怎么在一个真实项目里把它们组织好这恰恰是大部分人欠缺的。界面和交互细节项目在 UI 上花了不少心思。Material Design 的 Behavior 配合 ToolBar 实现了「上滑隐藏、下滑出现」的效果多处加了悬浮回顶按钮刷新动画用的是 SmartRefreshLayout 提供的多种样式。整体视觉效果在开源项目里算中上水平。从截图来看首页是标准的 Banner 加文章列表结构支持知识体系分类、公众号文章搜索、常用网站导航等功能。版本迭代到 1.2.5经历了 8 个大版本更新每版都有明确的改动记录包括适配 Android O、解决内存泄露、增加单元测试等。适合谁看如果你是刚入行一两年的 Android 开发者想系统地了解主流框架怎么在项目里配合使用这个项目值得 Clone 下来读一遍。代码注释比较详细分包结构清晰作者也声明了遵循阿里巴巴 Java 和 Android 开发规范。对于中级开发者来说项目里的 Dagger2 配合 MVP 的实现方式、RxJava 操作符的实际应用、BasePresenter 对生命周期的统一管理这些细节都值得参考。作者还配套维护了一个 Awesome-Android-Performance 仓库专门做性能优化技术的整理。一点不足项目依赖的 WanAndroid API 本身是学习社区的数据内容质量参差不齐。另外项目最后一次更新时间较早部分依赖库版本偏旧如果要基于它做二次开发需要花时间升级依赖。但作为一个学习项目来看它的价值不在于能不能直接上线而在于代码组织方式和技术选型的参考意义。下载和使用项目要求 Android 5.0 及以上版本APK 可以直接从项目页面下载。如果想看源码Clone 之后用 Android Studio 打开即可Dagger2 生成的类需要编译一次才会出现。对于想深入理解第三方库实现原理的开发者作者还维护了 Awesome-Third-Library-Source-Analysis 仓库里面有对 RxJava、Retrofit、Glide 等库的源码分析。is 仓库里面有对 RxJava、Retrofit、Glide 等库的源码分析。