美文网首页
组件化中单独运行其中某个module

组件化中单独运行其中某个module

作者: 再无离散 | 来源:发表于2019-09-27 21:07 被阅读0次

1先在gradle.properties文件中添加标识

这个标识无所谓自己知道定义就可以,我这里使用的是isMain=true.

true代表要作为一个application单独运行

2 在目标module中添加debug目录

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的问题了

build结构

上图基本上就是定义对应加载的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优化的比较好的大佬可以下面指导我一下,感激不尽.

相关文章

网友评论

      本文标题:组件化中单独运行其中某个module

      本文链接:https://www.haomeiwen.com/subject/eguryctx.html