1. Android架构演进:从MVC到模块化架构的实践之路
在美团这样日活过亿的超级App中,架构设计直接决定了团队的开发效率和系统的可维护性。我经历过从传统MVC到模块化架构的完整迁移过程,深刻体会到架构选型对大型项目的影响。
1.1 美团App架构演进历程
2016年之前的美团App采用典型的MVC架构,随着业务复杂度提升,逐渐暴露出几个致命问题:
- Activity/Fragment承担了过多职责,单个文件经常超过3000行代码
- 业务模块间存在大量直接调用,耦合严重
- 编译时间随着代码量增长呈指数上升
我们分三个阶段完成了架构改造:
- 基础解耦阶段(2016-2017):引入MVP模式,将业务逻辑抽离到Presenter层
- 组件化阶段(2018-2019):基于ARouter实现模块间通信,各业务线独立编译
- 动态化阶段(2020至今):结合插件化技术,核心页面动态加载率超过70%
1.2 模块化架构设计要点
在组件化改造过程中,我们总结出几个关键设计原则:
模块边界划分:
- 按业务域划分(外卖、到店、酒旅等)
- 基础组件下沉(网络、存储、埋点等)
- 每个模块保持"高内聚、低耦合"
通信机制设计:
java复制// 使用接口+服务发现机制
public interface IOrderService {
void launchOrderDetail(Context context, String orderId);
}
// 实现类标注@Route
@Route(path = "/order/service")
public class OrderServiceImpl implements IOrderService {
// 实现细节...
}
依赖管理规范:
groovy复制// 模块级build.gradle配置
dependencies {
implementation project(':module_base')
compileOnly project(':module_order') // 避免循环依赖
api 'com.google.code.gson:gson:2.8
