Android 组件化从入门篇到大厂(微信、支付宝、爱奇艺、携程、美团….)强化实战篇,Android 进阶必备

云惠网小编 2021年12月29日13:17:56
评论
2558字阅读8分31秒
摘要

组件化技术,在 Android 开发中有着举足轻重的作用。随着时间推移,软件项目很多都会变得越来越庞杂。此时,采用组件化技术,对项目进行改造,是一种较优的方案。要聊组件化,惯例是要谈谈模块化的,毕竟它与组件化确实有一些相同点,在组件化的项目中它也会与组件化发生关联。什么是模块化?模块化开发,是每个开发者都熟悉的。即将常用的UI、网络请求、数据库操作、第三方库的使用等公共部分抽离封装成基础模块,或者将大的业务上拆分为多个小的业务模块,这些业务模块又依赖于公共基础模块的开发方式。更宏观上,又会将这些不.

广告也精彩
  • 复用:首先,基础模块,可为业务模块所复用;其次,子业务模块,可为父业务模块,甚至不同的项目所复用。
  • 解耦:降低模块间的耦合,避免出现一处代码修改,牵一发而动全身的尴尬局面。
  • 协同开发:项目越来越大,团队人数越来越多,模块化开发可在尽量解耦的情况下,使不同的开发人员专注于自己负责的业务,同步开发,显著提供开发效率。

要聊组件化,惯例是要谈谈模块化的,毕竟它与组件化确实有一些相同点,在组件化的项目中它也会与组件化发生关联。

有赞微商城

  • 简介
  • 版本更新
  • 效果图
  • 主要功能
  • 项目目录结构
  • 主要开源框架

组件,顾名思义," 组装的零件 ",术语上叫做软件单元,可用于组装在应用程序中。
所以,组件化,要更关注可复用性、更注重关注点分离、功能单一、高内聚、粒度更小、是业务上能划分的最小单元。

缺点:

  • 加快编译速度:每个业务功能都是一个单独的工程,可独立编译运行,拆分后代码量较少,编译自然变快。
  • 提高协作效率:解耦 使得组件之间 彼此互不打扰,组件内部代码相关性极高。 团队中每个人有自己的责任组件,不会影响其他组件;降低团队成员熟悉项目的成本,只需熟悉责任组件即可;对测试来说,只需重点测试改动的组件,而不是全盘回归测试。
  • 功能重用:组件 类似我们引用的第三方库,只需维护好每个组件,一建引用集成即可。业务组件可上可下,灵活多变;而基础组件,为新业务随时集成提供了基础,减少重复开发和维护工作量。
  • 为什么做模块化
  • 解耦到什么程度?
  • 原项目耦合结构
  • 准备工作
  • 接口的抽离
  • 解耦方面的其他工作
  • 模块间/页面间通信
  • lib独立运行

模块化的优缺点?

携程 App

组件化的好处

  • 微信Android模块化架构重构实践
  • 微信Android架构历史
  • 为何再次重构微信
  • 重塑模块化
  • 取舍和选择
  • 代码之外,架构之内

美团 App

任凭模块化做得多么好,还是跳不出是组合在单一项目下的。随着项目的发展与迭代,模块化开发渐渐显现了以下的问题:

  • 有赞移动应用如何给页面安上“任意门”
  • 有赞微商城-Android组件化方案
  • 架构调整
  • 实现方案
  • Modular-support
  • 规划

组件化技术,在 Android 开发中有着举足轻重的作用。随着时间推移,软件项目很多都会变得越来越庞杂。此时,采用组件化技术,对项目进行改造,是一种较优的方案。

更宏观上,又会将这些不同的模块组合为一个整体,打包成一个完整的项目。

微信 App

在这里插入图片描述

组件化可以说是 Android 中级开发工程师必备技能了,能有效解决许多单一项目下开发中出现的问题。

  • Quinox 简介
  • Bundle 介绍
  • 资源管理
  • 容器化
  • 组件化和模块化的区别
  • 组件化和插件化的区别
  • 组件化开发的优势
  • 业务逻辑层
  • 组件化开发要遇到的问题
  • 从组件化实战来解决问题
  • Android 组件化基础

Atlas-手淘组件化框架的前世今生和未来的路

  • Android彻底组件化demo发布
  • Android彻底组件化—代码和资源隔离
  • 组件化:代码隔离也难不倒组件的按序初始化

如何学习组件化?

蘑菇街 App

那怎样解决模块化开发的这些弊端呢?当然是组件化喽!

组件化演示案例

这里给大家分享一份全网最全的《高级 Android 组件化强化实战》手册,手册分为三个大章节,Android 组件化初识,Android 组件化初探 和 架构演化(大厂篇),最主要的就是第三个章节——架构演化(大厂篇)。

什么是模块化?

  • 功能简介
  • 适用场景
  • 基本概念解释
  • URI跳转
  • 页面跳转来源
  • 平台化与两端复用
  • 通信问题
  • 复用问题与ServiceLoader模块
  • 依赖注入
  • 编译问题
  • WMRouter的推广

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

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

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

  • 概述
  • 模块化和组件化
  • 组件化Demo
  • 组件application和library动态切换

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

  • 背景
  • RxBus的出现
  • 引入LiveDataBus的想法
  • 为什么使用LiveData构建数据通信总线LiveDataBus
  • LiveDataBus的设计和架构
  • LiveDataBus最终实现
  • 组件化之前的状态
  • 组件化方案调研
  • 美团其他团队组件化方案调研
  • 组件化消息总线框架modular-event
  • 组件消息总线modular-event的实现
  • 消息总线modular-event的结构
  • 使用动态代理实现运行时调用
  • 订阅和发送的模式
  • 实现方式
  • 组件生命周期管理
  • 壳工程
  • 遇到的问题
  • 持续集成
  • 周边设施
  • 组件化调整的原因和目标
  • 组件化架构调整的整体规划
  • 组件化架构调整中遇到的一些问题
  • 组件化架构的实践成果

需要《高级 Android 组件化强化实战》手册可扫描【CSDN官方认证】二维码,免费领取!

第二章 Android组件化初探

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

  • 关于组件化
  • 基于Service的IPC通信
  • 组件化跨进程通信的核心诉求
  • Andromeda
  • 架构分析

篇幅有限,上文只展示内容大纲和部分内容截图,需要完整版《高级 Android 组件化强化实战》手册,可以扫描下方【CSDN官方认证】二维码,免费领取!

第一章 Android 组件化初识

  • Atlas是什么
  • 组件化的诞生
  • 解耦和依赖
  • 性能的演进
  • 产品
  • 无线后端服务架构
  • App工程架构
  • Native的插件化和HotFix

什么是组件化?

模块化开发,是每个开发者都熟悉的。即将常用的UI、网络请求、数据库操作、第三方库的使用等公共部分抽离封装成基础模块,或者将大的业务上拆分为多个小的业务模块,这些业务模块又依赖于公共基础模块的开发方式。

支付宝 App

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

  • 项目代码量越来越大
  • 业务模块越来越多
  • 团队人数越来越多

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

爱奇艺 App

优点:

  • 外卖客户端容器化架构的演进
  • 美团外卖容器化架构全景图
  • 外卖跨端容器建设
  • 外卖页面容器建设
  • 外卖容器化架构的衡量指标
  • 外卖容器化架构的监控运维
  • 外卖容器化架构的发布能力

得到 App

WanAndroid APP 组件化项目实战(附demo)

在这里插入图片描述

本文转自 https://blog.csdn.net/qq_44102588/article/details/122194025

腾讯云618
未分类
云惠网小编
SpringCloud -- Config、Bus解析

SpringCloud — Config、Bus解析

1、Config1.1、概述简介1. 分布式面临的问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要...
Java数据结构-了解复杂度

Java数据结构-了解复杂度

2.实例分析与计算  四.写在最后  // 计算斐波那契递归fibonacci的时间复杂度 int fibonacci(int N) { return N < 2 ? N : fibonacci...
[深度解剖C语言] --关键字 static

[深度解剖C语言] –关键字 static

static ---最名不副实的关键字目录1.static修饰全局变量2.static修饰函数3.static修饰局部变量static的作用:1.static修饰全局变量我们创建两...
Java数据结构-认识顺序表

Java数据结构-认识顺序表

目录二.顺序表1.概念及结构2.顺序表的实现打印顺序表获取顺序表的有效长度在pos位置新增元素判断是否包含某个元素查找某个元素对应的位置获取/查找pos位置的元素给pos位置的元素...
腾讯云618

发表评论