1、组件化项目架构

2、创建一个新项目流程
1)创建一个新项目
2)分别创建不同模块的lib
3) 创建一个总Library


3、统一控制版本,自定义是否是主项目运行还是单独一个模块运行

4、LoginComponent通过loginRunAlone字段判断LoginComponent模块是否可独立运行
MineComponent通过maieRunAlone字段判断MineComponent模块是否可独立运行
两者步骤一样,如下图:

5、LoginComponent多创建一个manifest.xml文件,在bulid.gradle文件下配置路径
MineComponent多创建一个manifest.xml文件,在bulid.gradle文件下配置路径

1)manifest文件夹下的manifest.xml文件内容

2)另外一个manifest.xml文件的内容

6、主项目分别依赖:ComponentLib、LoginComponent、MineComponent
LoginComponent模块:依赖ComponentLib
MineComponent模块:依赖ComponentLib
注意:主项目中的build.gradle文件中需要进行判断:如图
7、分别在主项目、LoginComponent、MineComponent中创建一个App文件继承Application。在ComponentLib中创建一个IAppComponent接口和AppConfig类


8、分别在主项目、LoginComponent、MineComponent中创建一个App文件继承Application。在ComponentLib中创建一个IAppComponent接口和AppConfig类
1)MainApp、LoginApp、MineApp实现IAppComponent接口


9、在ComponentLib创建两个接口,ILoginService、IMineService接口


10、在LoginComponent中创建LoginService类实现ILoginService,
在MineComponent中创建MineService类实现IMineService


11、在ComponentLib中创建ServiceFactory类

12、分别在LoginApp中添加ServiceFactory.getInstance().setmLoginService(new LoginService());
在MineApp中添加ServiceFactory.getInstance().setmMineService(new MineService());

13、判断是否为空
1)在ComponentLib创建两个类,EmptyLoginService、EmptyMineService分别实现ILoginService,IMineService接口。不用做如何处理

2)在ServiceFactory类中的getmLoginService、getmMineService进行判空处理

14、最后在MainActivity中实现跳转

结束了
本文详细介绍了一种组件化项目架构的设计与实现流程,包括创建新项目、模块化lib、统一版本控制、独立模块运行机制、manifest配置、依赖管理、应用层继承、接口与服务实现及工厂模式使用。
1060

被折叠的 条评论
为什么被折叠?



