
一、什么是组件化以及为啥要组件化在项目的开发过程中随着开发人员的增多及功能的增加如果提前没有使用合理的开发架构那么代码会越来臃肿功能间代码耦合也会越来越严重这时候为了保证项目代码的质量我们就必须进行重构。比较简单的开发架构是按照功能模块进行拆分也就是用 Android 开发中的 module 这个概念每个功能都是一个 module每个功能的代码都在自己所属的 module 中添加。这样的设计在各个功能相互直接比较独立的情况下是比较合理的但是当多个模块中涉及到相同功能时代码的耦合又会增加。例如首页模块和直播间模块中都可能涉及到了视频播放的功能这时候不管将播放控制的代码放到首页还是直播间开发过程中都会发现我们想要解决的代码耦合情况又又又又出现了。为了进一步解决这个问题组件化的开发模式顺势而来。二、组件化和模块化区别1.模块一般是指的业务模块比如【首页模块】等。2.组件是指单一的功能组件如【视频组件】【支付组件】每一个组件都可以单独moudle开发并且可以单独抽出来当SDK使用。由此看来他们之间最明显的区分度就是模块相对于组件粒度更大一个模块中可以包含多个组件并且2种方式本质思想是一致的都是为了代码重用和业务解耦。在划分的时候模块化也是业务导向组件化是功能导向。下图就是一个非常基础的组件化架构图图中重上而下分为 应用层、组件层、基础层。3.基础架构分层解释基础层包含一些基础库以及对基础库的一些封装比如我们常用的图片加载、网络请求、数据库存储操作。组件层包含了一些简单的功能组件应用层这图中简化了我们的应用app相当于我们的模块一个具体的业务模块会按照需求引用不同的功能组件。注意最简单的组件架构如图所示但是这只是最理想状态下的架构实际开发中组件间肯定需要数据传递、页面跳转等但是图中显示的各个组件间是相互隔离的没用相互依赖如果进行相互依赖和交互这就违背了组件化开发的原则所以需要解决这些问题才能进行组件化开发。如何学习组件化网上有很多关于学习组件化开发的文章组件化原理很简单但是真正实施起来还是挺困难的没有相应的实战源码参考就做好踩坑的准备吧。最近小编有幸在字节跳动高工手里扒到这份“组件化实战学习手册”这位大佬主导开发过多个采用组件化架构的APP项目。现在我只想吹爆这位大佬熬夜半个月把积累的经验和踩的坑都进行了总结整理成了长达220页的学习手册手册中收录了大厂热门的组件化项目实战从新手到架构师这份学习手册足以。第一章 Android组件化初识组件化和模块化的区别组件化和插件化的区别组件化开发的优势业务逻辑层组件化开发要遇到的问题从组件化实战来解决问题Android组件化基础……第二章 Android组件化初探目录组件化演示案例概述模块化和组件化组件化Demo组件application和library动态切换……WanAndroid APP 组件化项目实战附demo版本更新效果图主要功能项目目录结构主要开源框架……第三章 架构演化大厂篇从智行 Android 项目看组件化架构实践组件化调整的原因和目标组件化架构调整的整体规划组件化架构调整中遇到的一些问题得到 AppAndroid彻底组件化demo发布JIMU使用指南组件化拆分的感悟……微信 App微信Android模块化架构重构实践微信Android架构历史为何再次重构微信……蘑菇街 App蘑菇街 App 的组件化实现方式组件生命周期管理壳工程遇到的问题持续集成周边设施……爱奇艺 App基于Service的IPC通信组件化跨进程通信的核心诉求Andromeda架构分析……美团 App外卖客户端容器化架构的演进美团外卖容器化架构全景图外卖跨端容器建设外卖页面容器建设外卖容器化架构的衡量指标外卖容器化架构的监控运维外卖容器化架构的发布能力……美团Android组件化方案及组件消息总线modular-event实战美团Android消息总线的演进之路用LiveDataBus替代RxBus、EventBusWMRouter美团外卖Android开源路由框架美团猫眼android模块化实战-可能是最详细的模块化实战携程App支付宝 App…结语现在组件化真的不是什么新鲜东西了大公司都用的滚瓜烂熟龙飞凤舞了也就是现在部分中型项目和小项目在组件化的路上努力。所以同志们组件化没玩过的不熟悉的赶紧搞起来说一点你不会组件化发布影子工程那么对你来说就是个噩梦。从本质上来讲任何技术进步都是在现实需求的逼迫下抓耳挠腮耗尽无数头发才想出来的。所以呢组件化这个东西出来这么久了页发展了这么久了用的人越来越多那肯定是对我们开发大有裨益的小伙伴们不会不熟悉抓紧啦要不面试问你你怎么回答呢