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')
    }

結尾:其他子模塊可以按照這種方式切換

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。