# 业务模块独立运行
## 使用说明
#### 1、首先judy-plugin和judy-api依赖请参考README。
#### 2、在需要独立运行的业务模块的gradle配置文件添加如下配置
```
//apply plugin: 'com.android.library'//注释掉原有配置
apply plugin: 'judy.alone.run'//添加配置并放在第一行
```
#### 3、在对应业务模块src目录下添加aloneRun文件夹,并添加如下结构(如图):
###### *PS:java类与资源文件根据需求自行添加,也可省略。*
#### 4、在对应业务模块aloneRun/AndroidManifest.xml文件中配置shareUserId属性及application的name属性(如图):
###### *PS:AloneRunApplication类在BaseLib模块src/debug目录中,请自行参考。*
#### 5、在宿主模块src/debug目录下添加AndroidManifest.xml文件,并添加shareUserId配置(如图):
###### *PS:为了追求在release打包后无shareUserId痕迹,所以才在debug目录下添加该文件,也可以在main/AndroidManifest.xml文件中添加。*
#### 6、修改宿主模块依赖各业务模块方式
```
dependencies {
……
//implementation project(':module:ModuleA')
//implementation project(':module:ModuleB')
//implementation project(':module:ModuleC')
//implementation project(':module:ModuleLogin')
//将以上依赖修改为如下方式,注意:只需要模块名称,无需添加冒号
dependModule 'ModuleA'
dependModule 'ModuleB'
dependModule 'ModuleC'
dependModule 'ModuleLogin'
……
}
```
#### 7、在项目根目录local.properties文件中添加如下配置:
```
#独立运行业务模块配置
SHARE_USER_ID=com.zly.judy.bridge
ModuleB = false
```
配置SHARE\_USER\_ID是为了使宿主与独立业务模块数据共享。
ModuleB=false配置是对应业务模块的运行模式(true:独立运行模式,false:集成模式),根据需求自行添加业务。**注意:Key必须与模块名一致**
#### 8、配置完以上步骤后,可在项目根目录local.properties文件中自行切换对应业务模块模式。开启独立运行模式后,需要执行一次gradle同步才可运行对应模块。关闭独立运行模式无需执行gradle同步。
###### **PS:使用说明步骤写得比较凌乱,还望见谅。**
## 叨叨
本库独立运行并不完美,主要是为了解决当项目足够大时集成编译速度太慢的问题,让项目支持单模块测试,不用对整个项目进行编译,当然有官方的Instant Run,第三方有freeline等都能解决编译慢的问题。