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中实现跳转
结束了