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

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优化的比较好的大佬可以下面指导我一下,感激不尽.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容