阿里内部人士分享的高级Android 组件化实战手册,如何维护一个巨大的Android项目呢?
Posted 程序员-吴彦祖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里内部人士分享的高级Android 组件化实战手册,如何维护一个巨大的Android项目呢?相关的知识,希望对你有一定的参考价值。
背景
当一个工程越来越大,功能越来越复杂之后,成员越来越多的情况下,如何维护一个巨大的安卓项目呢?此过程中,你是否有过以下烦恼?
项目模块多且复杂,编译一次要5分钟甚至10分钟?太慢不能忍?
改了一行代码 / 只调了一点UI,就要run整个项目,再忍受一次10分钟?
合代码经常发生冲突?很烦?
被人偷偷改了自己模块的代码?很不爽?
做一个需求,发现还要去改动很多别人模块的代码?
别的模块已实现的类似功能,自己要用只能去复制一份代码再改改?
“这个不是我负责的,我不管”,代码责任范围不明确?
只做了一个模块的功能,但改动点很多,所以要完整回归测试?
做了个需求,但不知不觉导致其他模块出现bug?
如果有这些烦恼,说明你的项目需要进行组件化 了。
通俗的讲组件化就是基于可重用的目的,将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件。 组件的出现是为了解决全局工程中有很多重复代码的问题,是为了复用,而且划分力度是相对较小的模块。组件化的另一个目的是为了解耦,把系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护。
组件化开发带来的优点:
- 业务模块分开,解耦的同时也降低了项目的复杂度,结构非常清晰。
- 开发调试时不需要对整个项目进行编译,每个模块可独立编译,提高了编译速度。
- 多人合作时可以只关注自己的业务模块,把某一业务当成单一项目来开发,可以提升开发,测试效率。
- 可以灵活的对业务模块进行组装和拆分。
- 避免重复造轮子,节省开发维护成本;
为什么现在很注重组件化这个问题呢?
举个例子来说,一个项目需要好几个业务代码,如果某一个业务代码出了问题,则需要在好几个当中去寻找,工程师需要了解各个业务的功能,避免代码的改动而影响其它的业务功能,势必无形中增加了项目维护的成本。如果让他们都相对独立,我们只需要维护好每个组件,需要用到该组件的功能时,一建引用集成就可以了。
近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?
组件化的好处:
- 加快编译速度
每个业务功能都是一个单独的工程,可独立编译运行,拆分后代码量较少,编译自然变快。 - 提高协作效率
解耦使得组件之间彼此互不打扰,组件内部代码相关性极高。团队中每个人有自己的责任组件,不会影响其他组件;降低团队成员熟悉项目的成本,只需熟悉责任组件即可;对测试来说,只需重点测试改动的组件,而不是全盘回归测试。 - 功能重用
组件类似我们引用的第三方库,只需维护好每个组件,一键引用集成即可。业务组件可上可下,灵活多变;而基础组件,为新业务随时集成提供了基础,减少重复开发和维护工作量。
怎么学呢?
这里给大家分享一份阿里大佬整理的全网最全的《高级 Android 组件化强化实战》手册,手册分为三个大章节,Android 组件化初识,Android 组件化初探 和 架构演化(大厂篇)
第一章 android 组件化初识
- 组件化和模块化的区别
- 组件化和插件化的区别
- 组件化开发的优势
- 业务逻辑层
- 组件化开发要遇到的问题
- 从组件化实战来解决问题
- Android 组件化基础
第二章 Android组件化初探
- 组件化演示案例
- 概述
- 模块化和组件化
- 组件化Demo
- 组件application和library动态切换
- WanAndroid APP 组件化项目实战(附demo)
- 简介
- 版本更新
- 效果图
- 主要功能
- 项目目录结构
- 主要开源框架
温馨提示,篇幅有限,需要这份《高级 Android 组件化强化实战》手册,文末有免费领取方式!
第三章 架构演化(大厂篇)
组件化作为 Android 客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android 开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。
从智行 Android 项目看组件化架构实践
- 组件化调整的原因和目标
- 组件化架构调整的整体规划
- 组件化架构调整中遇到的一些问题
- 组件化架构的实践成果
得到 App
- Android彻底组件化demo发布
- Android彻底组件化—代码和资源隔离
- 组件化:代码隔离也难不倒组件的按序初始化
微信 App
- 微信Android模块化架构重构实践
- 微信Android架构历史
- 为何再次重构微信
- 重塑模块化
- 取舍和选择
- 代码之外,架构之内
蘑菇街 App
-
实现方式
-
组件生命周期管理
-
壳工程
-
遇到的问题
-
持续集成
-
周边设施
爱奇艺 App
- 关于组件化
- 基于Service的IPC通信
- 组件化跨进程通信的核心诉求
- Andromeda
- 架构分析
美团 App
-
外卖客户端容器化架构的演进
-
美团外卖容器化架构全景图
-
外卖跨端容器建设
-
外卖页面容器建设
-
外卖容器化架构的衡量指标
-
外卖容器化架构的监控运维
-
外卖容器化架构的发布能力
携程 App
- 产品
- 无线后端服务架构
- App工程架构
- Native的插件化和HotFix
支付宝 App
- Quinox 简介
- Bundle 介绍
- 资源管理
- 容器化
…
篇幅有限,点击下方卡片,免费领取Android学习资料,保证免费分享!
以上是关于阿里内部人士分享的高级Android 组件化实战手册,如何维护一个巨大的Android项目呢?的主要内容,如果未能解决你的问题,请参考以下文章
阿里云团队封神之作《Android逆向开发自学笔记》保姆式教程,首次开源分享!!!
全面掌握Android 组件化,写给开发者的高级 Android 组件化强化实战,再也不用担心项目做不好了