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