Android组件化系列之module和application相互切换配置

项目架构:就其中的一个子模块为例(user)


图片.png

1.在全局配置文件中添加isModule,appId

// false: 组件模式
// true :集成模式
isModule = false

appId = [
             user: "com.jacksean.wandroid.user",
    ]

图片.png

2.在项目的build.gradle文件中引入全局配置

apply from:file('config.gradle')
图片.png

3.在user模块中的build.gradle中添加

//apply plugin: 'com.android.library'
//根据isModule标签动态的切换 集成/组件模式
if (rootProject.isModule){
    apply plugin: 'com.android.library'
}else{
    apply plugin: 'com.android.application'
}

android {
  
    defaultConfig {

        //组件模式下
        if (!rootProject.isModule){
            applicationId rootProject.appId.user
        }

    }

    //资源配置
    sourceSets{
        main{
            //在组件模式下 使用不同的manifest文件
            if(!rootProject.isModule){
                manifest.srcFile 'src/main/module/AndroidManifest.xml'

            }else{
                manifest.srcFile 'src/main/AndroidManifest.xml'
            }
        }
    }

}

这里需要自己手动添加application的时候AndroidManifest.xml文件


图片.png

图片.png

4.特别注意,在主模块下已经引用的user模块,所以需要配置一下

if (rootProject.isModule){
        implementation project(':user')
    }

结尾:其他子模块可以按照这种方式切换

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。