字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

2021年09月15日 阅读数:2
这篇文章主要向大家介绍字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

背景

组件化做为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每一个大厂内部的各个Android开发团队也在尝试和实践不一样的组件化方案,而且在组件化通讯框架上也有不少高质量的产出。本文主要介绍咱们的组件化方案,但愿对从事Android组件化开发的同窗能有所启发。android

为何要组件化

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

1.提升组件复用性架构

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

2.下降组件间的耦合框架

咱们须要经过组件化的规则把代码拆分红不一样的模块,模块要作到高内聚、低耦合。模块间也不能直接调用,这须要组件化通讯框架的支持。下降了组件间的耦合性能够带来两点直接的好处:第一,代码更便于维护;第二,下降了模块的Bug率。运维

怎样实现组件化

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

  • 代码解耦。将一个庞大的工程拆分解耦,这是很是耗时耗力的工做,但这也是最基础最重要的一步模块化

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

  • UI跳转。学习

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

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

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

下面给你们介绍的是全网最全的Android组件化实战整理,覆盖了整个互联网公司,受篇幅限制不会展现全部内容,只能截图展现部分,完整内容已整理成PDF文档,若是你正好须要这份完整版Android组件化最佳实战PDF,能够点此处免费获取。

第一章 Android组件化初识

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

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

  2. 组件化开发的优点

  3. 业务逻辑层

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

  1. Android组件化基础

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

第二章 Android组件化初探

1.组件化演示案例

  • 模块化和组件化

  • 模块化

  • 组件化

  • 组件化Demo

  • 项目分析

  • 组件application和library动态切换

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

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

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

  • 简介

  • 版本更新

  • 效果图

  • 主要功能

  • 项目目录结构

  • 主要开源框架

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

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

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

  • 前言

  • 概述

  • 组件化调整的缘由和目标

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

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

  • 组件化架构的实践成果

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)
2.获得 App

  • Android完全组件化demo发布

  • JIMU使用指南

  • 组件化拆分的感悟

  • Android完全组件化—代码和资源隔离

  • 代码隔离

  • 资源隔离

  • 调试切换

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

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

  • 问题的根源

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

  • 设计思路

  • 有向无环图(DAG)

  • 环校验

  • 契合需求的排序方式

  • 任务的描述

  • 在JIMU中使用

  • 重要事项

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

3.微信 App

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

  • 微信Android架构历史

  • 为什么再次重构微信

  • 重塑模块化

  • 取舍和选择

  • 代码以外,架构以内

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

4.蘑菇街 App

  • 蘑菇街 App 的组件化之路

  • 实现方式

  • 组件生命周期管理

  • 壳工程

  • 遇到的问题

  • 持续集成

  • 周边设施

  • 小结

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)
蘑菇街 App 的组件化之路·续

  • 统一的调用实现

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

  • 更明确的表述

  • 注册这个组件关心的 URL

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

  • 在 App 生命周期的不一样阶段作不一样的响应

  • 针对casatwy的一些回应

  • 小结

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)
5 爱奇艺 App

  • 关于组件化

  • 基于Service的IPC通讯

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

  • Andromeda

  • 架构分析

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

6.美团 App

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

  • 背景

  • 美团外卖业务介绍

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

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

  • 什么是容器化架构

  • 容器化架构的优点

  • 外卖容器化架构全景图

  • 容器化的挑战

  • 外卖跨端容器建设

  • MRN容器

  • Titans容器

外卖页面容器建设

  • 页面容器化设计思路

  • 业务构建模块标准化

  • 小结

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

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

  • 链路指标

  • 关键指标

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

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

  • 容器化架构发布体系

  • 跟版本发布流程

  • bundle资源发布

  • 多种发布能力综合使用

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

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模块化实战-多是最详细的模块化实战

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)
11.携程App(篇幅过长,没法展现所有)

12.支付宝 App

......

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

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

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

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

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

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