组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。本文主要介绍我们的组件化方案,希望对从事Android组件化开发的同学能有所启发。
近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?我们认为组件化能够带来两个最大的好处:
1.提高组件复用性
可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成Android Module,打包AAR并上传代码仓库,那么这部分功能就能被方便地引入和使用。但是我们觉得仅仅这样是不够的,上传仓库的AAR库是否方便被复用,需要组件化的规则来约束,这样才能提高复用的便捷性。
2.降低组件间的耦合
我们需要通过组件化的规则把代码拆分成不同的模块,模块要做到高内聚、低耦合。模块间也不能直接调用,这需要组件化通信框架的支持。降低了组件间的耦合性可以带来两点直接的好处:第一,代码更便于维护;第二,降低了模块的Bug率。
要实现组件化需要考虑的问题主要包括下面几个:
下面给大家介绍的是全网最全的Android组件化实战整理,覆盖了整个互联网公司,受篇幅限制不会展示所有内容,只能截图展示部分,完整内容已整理成PDF文档,如果你正好需要这份完整版Android组件化最佳实战PDF,可以私信关键词【笔记】即可获得免费领取方式。
1.组件化和模块化的区别
5.从组件化实战来解决问题
1.组件化演示案例
2. WanAndroid APP 组件化项目实战附demo
1.从智行 Android 项目看组件化架构实践
2.得到 App
组件化:代码隔离也难不倒组件的按序初始化
3.微信 App
4.蘑菇街 App
蘑菇街 App 的组件化之路·续
5 爱奇艺 App
6.美团 App
美团外卖容器化架构全景图
外卖页面容器建设
外卖容器化架构的衡量指标
7. 美团Android组件化方案及组件消息总线modular-event实战
8. 美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
9.WMRouter:美团外卖Android开源路由框架
10.美团猫眼android模块化实战-可能是最详细的模块化实战
11.携程App(篇幅过长,无法展示全部)
12.支付宝 App
……
总结:组件化后让代码结构非常清晰,分层结构以及之间的交互很明了,团队中的任何一个人都可以很轻松的绘制出代码结构图,这个在之前是没法做到的,并且每个组件的编译时间从 10 分钟降到了几十秒,工作效率有了很大地提升,最关键的还是解耦之后,每次开发需求的时候,面对的代码越来越少,不用背负那么重的代码包袱,可以说达到了“代码越写越少”的理想情况。如果你是一位Android开发者学好组件化是非常有必要的,而深入理解组件化的实战更是重中之重。