字节 系统部
背景组件化作为安卓客户端技术的一个重要分支,是近年来业界积极探索和实践的方向。
各大手工场内的各个Android开发团队也在尝试和实践不同的组件化方案,组件化通信框架也进行了很多高质量的生产。
本文主要介绍我们的组件化方案,希望对从事安卓组件化开发的同学有所启发。
为什么要组件化近年来,为什么会有这么多团队进行组件化实践? 组件化给我们的工程、代码带来什么好处? 我们认为组件化可以带来两个最大的好处。
1 .提高组件复用性
虽然有些人可能觉得提高复用性很容易,但是如果直接将需要复用的代码制作成Android Module,将AAR打包并上传到代码仓库,就可以很容易地部署和使用其中的一些功能。
但是,我认为只有那个是不够的。 上传到仓库的AAR库是否容易复用需要受组件化规则的约束,以提高复用的便利性。
2 .减少组件之间的耦合
我们需要根据组件化规则将代码划分为不同的模块,模块必须实现高聚集、低耦合。
也不能在模块之间直接调用,需要组件化通信框架的支持。
降低组件之间的耦合性带来了两个直接的好处。 第一,代码维护变得容易。 二是降低模块的错误率。
如何实现组件化实现组件化需要考虑的问题主要有以下几个。
代码解耦。
拆除和合并巨大的项目是一项非常耗时费力的工作,但这也是最基础、最重要的步骤的数据传输。
每个组件都可以提供给其他组件,并且主项目和组件、组件和组件之间的数据传输UI跳转。
的生命周期。
组件加载、卸载和降维的生命周期集成调试。
如何在开发阶段根据需要编译组件? 一次调试可能只涉及一两个组件的集成,从而大大缩短编译时间,提高开发效率。
代码隔离。
如何杜绝耦合的发生。
以下介绍的是全网最完善的Android组件化实战整理,覆盖了整个互联网公司。 由于篇幅的限制,并不展示所有内容,而是只在屏幕截图中展示了一部分,完整的内容组织在PDF文档中。
如果需要最适合这个完整版的Android组件化的实战PDF的话,私发关键词【笔记】就可以免费接收。
第一章安卓组件化初识1 .组件化与模块化的区别
组件化与插件化的差异组件化开发优势业务逻辑层5 .从组件化实战解决问题
安卓组件化的基础
第二章安卓组件化入门1 .组件化演示案例
模块化和组件模块化组件化Demo项目分析组件application和library动态切换组件之间的数据传输和方法调用获取组件类,以及组件页面
摘要版本更新效果图主要功能项目目录结构主要开源框架
第三章架构演进1 .从智行安卓项目看组件化架构实践
首先概述组件化调整的原因和目标组件化体系结构调整总体规划组件化体系结构调整中遇到的若干问题组件化体系结构的实践成果
2 .获得APP
安卓完全组件化demo,JIMU发布指南进行组件化拆分安卓完全组件化-代码与资源隔离代码隔离资源隔离调试切换
组件化:逐步初始化代码隔离困难的组件
产生问题的根本原因是为什么选择不使用公式StartUp来设计车轮,对于无环图环检验的匹配需求序列方式任务的描述在JIMU中是一个重要的问题
3 .微信APP
重构微信模块化体系结构实践微信架构的历史为什么要再次重构微信,除了模块化取舍和代码选择外,在体系结构中
4 .蘑菇街APP
菇街APP组件化的途径实现方式组件在生命周期管理坛施工中遇到的问题不断整合周边设施的总结
蘑菇街APP组件化的途径
实现统一调用通过Category统一组件外部曝光的接口,更清晰地表达了注册这个组件感兴趣的URL注册这个组件可以调用的方法/属性,App生命周期不同
5爱琪APP
基于组件化服务的IPC通信关于组件化跨步骤通信的核心诉求Andromeda架构分析
6 .美团APP
外卖客户端容器化架构演进背景美团外卖业务介绍美团外卖移动终端历史架构简介美团外卖容器化架构全景图
集装箱化体系结构集装箱化体系结构优势配送集装箱化体系结构全景图挑战配送传输容器建设MRN容器Titans容器配送页面容器建设
页面集装箱化设计思路业务构建模块标准化总结外卖集装箱化体系结构的衡量指标
集装箱化结构衡量指标特征链接指标关键指标配送集装箱化结构监测运维配送集装箱化结构发布能力综合使用集装箱化结构发布体系和发布流程bundle资源发布能力
7 .美团安卓组件化方案及组件消息总线modular-event实战
背景组件化前状态组件化方案调查美团他队组件化方案调查组件化方案组件化方案组件总线框架modular-event组件消息总线modular-event实现消息使用实现运行时调用订阅和发送的模式8 .美团Android消息总线的演进之路: LiveDataBus
背景发布/订阅模式RxBus的出现引入LiveDataBus的想法为什么使用LiveData构建数据通信总线LiveDataBusLiveDataBus的设计和架构LiveDataBus最终实现9.WMRouter:美团外卖Android开源路由框架
10.美团猫眼android模块化实战-可能是最详细的模块化实战
11.携程App
12.支付宝App
.
总结:组件化后让代码结构非常清晰,分层结构以及之间的交互很明了,团队中的任何一个人都可以很轻松的绘制出代码结构图,这个在之前是没法做到的,并且每个组件的编译时间从10 分钟降到了几十秒,
工作效率有了很大地提升,最关键的还是解耦之后,每次开发需求的时候,面对的代码越来越少,不用背负那么重的代码包袱,可以说达到了“代码越写越少”的理想情况。
如果你是一位Android开发者学好组件化是非常有必要的,而深入理解组件化的实战更是重中之重。
如果你正好需要这份Android组件化实战PDF文档,可以后台私信关键词【笔记】即可获得免费领取方式,资料都是免费分享给爱学习的你的。