1先在gradle.properties文件中添加标识
这个标识无所谓自己知道定义就可以,我这里使用的是isMain=true.
true代表要作为一个application单独运行
2 在目标module中添加debug目录
有些人可能有疑惑,不要着急.带着问题往下看,可能印象比较深刻吧.不过这里要注意一点
debug中的Manifest中的东西跟你app里面的Manifest一样,除了package包名.因为它要作为一个单独app运行,Manifest需要的东西必须一样不能少.下边的Manifest就是目标mudule当做library时使用的
3 定义build策略
这里要注意的是修改的是目标module的build,因为它本身是一个module,系统给它定的就是library,而要单独运行时要定义为application
if (isMain.toBoolean()){
applyplugin:'com.android.application'//作为项目
}else{
applyplugin:'com.android.library'//作为module
}
上边就是一个动态转化,isMain就是前面定义的标识 true就是当做app单独运行
然后就是定义module作为app运行时的applicationId
if (isMain.toBoolean()){
applicationId "module包名"
}
之后就是定义上面2个Manifest的问题了
上图基本上就是定义对应加载的Manifest了.
4 修改主APP的build
因为目标module要作为app运行了 你原来定义的是作为module引入,这里判断一下就可以了
if (!isMain.toBoolean()){
implementation project('目标module')
}
sync一样 运行小三角左边基本就可以选择2个app运行了
5 针对module比较多的情形
上边标识是Boolean 所以只能针对module少的情况,或者是测试点固定的情形.像如果是几十个module都要单独测试的话,就需要一些工作量了<主要是增加debug的文件Manifest的属性配置>,这个工作量比起来长期编译的时间基本可以忽略.主要是基本上一劳永逸吧.切换某个module为主app的标识可以用某个int数字实现.只要自己定义好规则一一对应即可.如果说有gradle优化的比较好的大佬可以下面指导我一下,感激不尽.