美文网首页Android架构设计模式
已献出膝盖!GitHub上堪称神级的Android组件化最佳实战

已献出膝盖!GitHub上堪称神级的Android组件化最佳实战

作者: Android阿南 | 来源:发表于2021-01-30 20:38 被阅读0次

    它的背景

    组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。本文主要介绍我们的组件化方案,希望对从事Android组件化开发的同学能有所启发。

    为什么要组件化

    近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?我们认为组件化能够带来两个最大的好处:

    1.提高组件复用性

    可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成Android Module,打包AAR并上传代码仓库,那么这部分功能就能被方便地引入和使用。但是我们觉得仅仅这样是不够的,上传仓库的AAR库是否方便被复用,需要组件化的规则来约束,这样才能提高复用的便捷性。

    2.降低组件间的耦合

    我们需要通过组件化的规则把代码拆分成不同的模块,模块要做到高内聚、低耦合。模块间也不能直接调用,这需要组件化通信框架的支持。降低了组件间的耦合性可以带来两点直接的好处:第一,代码更便于维护;第二,降低了模块的Bug率。

    怎样实现组件化

    要实现组件化需要考虑的问题主要包括下面几个:

    • 代码解耦。将一个庞大的工程拆分解耦,这是非常耗时耗力的工作,但这也是最基础最重要的一步

    • 数据传递。每个组件都有可能提供给其他组件使用,主项目与组件、组件与组件之间的数据传递

    • UI跳转。

    • 组件的生命周期。组件加载、卸载和降维的生命周期

    • 集成调试。在开发阶段如何做到按需的编译组件?一次调试中可能只有一两个组件参与集成,这样编译的时间就会大大降低,提高开发效率。

    • 代码隔离。如何杜绝耦合的产生。

    下面给大家介绍的是GitHub上堪称神级的Android组件化最佳实战整理,覆盖了整个互联网公司,受篇幅限制不会展示所有内容,只能截图展示部分,完整内容已整理成PDF文档,如果你正好需要这份完整版Android组件化最佳实战PDF,可以点此处免费获取。

    第一章 Android组件化初识

    1.组件化和模块化的区别

    1. 组件化和插件化的区别

    2. 组件化开发的优势

    3. 业务逻辑层

    5.从组件化实战来解决问题

    1. Android组件化基础

    第二章 Android组件化初探

    1.组件化演示案例

    • 模块化和组件化

    • 模块化

    • 组件化

    • 组件化Demo

    • 项目分析

    • 组件application和library动态切换

    • 组件间的数据传递和方法调用

    • 组件类(例如:Fragment)的获取,以及夸组件页面跳转和通讯

    2. WanAndroid APP 组件化项目实战附demo

    • 简介

    • 版本更新

    • 效果图

    • 主要功能

    • 项目目录结构

    • 主要开源框架

    第三章 架构演化(大厂篇)

    1.从智行 Android 项目看组件化架构实践

    • 前言

    • 概述

    • 组件化调整的原因和目标

    • 组件化架构调整的整体规划

    • 组件化架构调整中遇到的一些问题

    • 组件化架构的实践成果

    2.得到 App

    • Android彻底组件化demo发布

    • JIMU使用指南

    • 组件化拆分的感悟

    • Android彻底组件化—代码和资源隔离

    • 代码隔离

    • 资源隔离

    • 调试切换

    组件化:代码隔离也难不倒组件的按序初始化

    • 问题的根源

    • 为什么不使用官方StartUp而选择造轮子

    • 设计思路

    • 有向无环图(DAG)

    • 环校验

    • 契合需求的排序方式

    • 任务的描述

    • 在JIMU中使用

    • 重要事项

    3.微信 App

    • 微信Android模块化架构重构实践

    • 微信Android架构历史

    • 为何再次重构微信

    • 重塑模块化

    • 取舍和选择

    • 代码之外,架构之内

    4.蘑菇街 App

    • 蘑菇街 App 的组件化之路

    • 实现方式

    • 组件生命周期管理

    • 壳工程

    • 遇到的问题

    • 持续集成

    • 周边设施

    • 小结

    蘑菇街 App 的组件化之路·续

    • 统一的调用实现

    • 通过 Category 来统一组件对外暴露的接口

    • 更明确的表述

    • 注册这个组件关心的 URL

    • 注册这个组件能够被调用的方法/属性

    • 在 App 生命周期的不同阶段做不同的响应

    • 针对casatwy的一些回应

    • 小结

    5 爱奇艺 App

    • 关于组件化

    • 基于Service的IPC通信

    • 组件化跨进程通信的核心诉求

    • Andromeda

    • 架构分析

    6.美团 App

    • 外卖客户端容器化架构的演进

    • 背景

    • 美团外卖业务介绍

    • 美团外卖移动端历史架构概述

    美团外卖容器化架构全景图

    • 什么是容器化架构

    • 容器化架构的优势

    • 外卖容器化架构全景图

    • 容器化的挑战

    • 外卖跨端容器建设

    • MRN容器

    • Titans容器

    外卖页面容器建设

    • 页面容器化设计思路

    • 业务构建模块标准化

    • 小结

    外卖容器化架构的衡量指标

    • 容器化架构衡量指标的特点

    • 链路指标

    • 关键指标

    • 外卖容器化架构的监控运维

    • 外卖容器化架构的发布能力

    • 容器化架构发布体系

    • 跟版本发布流程

    • bundle资源发布

    • 多种发布能力综合使用

    7. 美团Android组件化方案及组件消息总线modular-event实战

    • 背景

    • 组件化之前的状态

    • 组件化方案调研

    • 美团其他团队组件化方案调研

    • 组件化方案

    • 组件化消息总线框架modular-event

    • 组件消息总线modular-event的实现

    • 消息总线modular-event的结构

    • 使用动态代理实现运行时调用

    • 订阅和发送的模式

    8. 美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

    • 背景

    • 发布/订阅模式

    • RxBus的出现

    • 引入LiveDataBus的想法

    • 为什么使用LiveData构建数据通信总线LiveDataBus

    • LiveDataBus的设计和架构

    • LiveDataBus最终实现

    9.WMRouter:美团外卖Android开源路由框架

    10.美团猫眼android模块化实战-可能是最详细的模块化实战

    11.携程App(篇幅过长,无法展示全部)

    12.支付宝 App

    ......

    总结:组件化后让代码结构非常清晰,分层结构以及之间的交互很明了,团队中的任何一个人都可以很轻松的绘制出代码结构图,这个在之前是没法做到的,并且每个组件的编译时间从 10 分钟降到了几十秒,工作效率有了很大地提升,最关键的还是解耦之后,每次开发需求的时候,面对的代码越来越少,不用背负那么重的代码包袱,可以说达到了“代码越写越少”的理想情况。如果你是一位Android开发者学好组件化是非常有必要的,而深入理解组件化的实战更是重中之重。

    如果你正好需要这份Android组件化实战PDF文档,可以点击此处快速获取通道,资料都是免费分享给爱学习的你的。

    整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编哦~

    你的支持,我的动力;祝各位前程似锦,offer不断!!!

    更多Android架构相关资料可点此处获取

    相关文章

      网友评论

        本文标题:已献出膝盖!GitHub上堪称神级的Android组件化最佳实战

        本文链接:https://www.haomeiwen.com/subject/dbwqtltx.html