Android组件化之gradle配置

1、统一管理SDK以及依赖的版本

     gradle是用groovy语言编写的,也可以在gradle中定义变量打印值输出,我们可以在项目中新建一个gradle文件来定义sdk以及应用包名等。

ext {
    //false:组件模式 true:集成模式
    isModule=false
    android = [
            compileSdkVersion: 27,
            minSdkVersion    : 19,
            targetSdkVersion : 27,
            versionCode      : 1,
            versionName      : "1.0"
    ]

    appId = [
            "app"     : "com.wkk.myrouter",
            "library1": "com.wkk.library1",
            "library2": "com.wkk.library2"
    ]
}

2、配置Library的状态

组件化状态Library是application状态,在集成模式其为library状态

//根据isModule切换组件和继承模式
if (isModule) {
    apply plugin: 'com.android.library'
} else {
    apply plugin: 'com.android.application'
}

3、配置包名

如果要独立运行就必须有一个appId来标识

 if (!isModule) {
            applicationId appId["library1"]
        }

这里需要先把config.gradle注入,在project的build文件中填加

apply from:"config.gradle"

在组件module的build文件中填加

def cfg = rootProject.ext.android
def appId = rootProject.ext.appId

其中cfg和appId为自定义的变量。

4、资源文件配置

要独立运行就需要在AndroidManifest文件中配置application和laucher,我们需要在组件的build文件中配置AndroidManifest文件的路径,此处的AndroidManifet文件要与组件状态的AndroidManifest区分开来。

 sourceSets {
            main {
                //组件化与继承模式使用不同的AndroidManifest文件
                if (!isModule) {
                    manifest.srcFile 'src/main/module/AndroidManifest.xml'
                    java.srcDirs 'src/main/module/java', 'src/main/java'
                } else {
                    manifest.srcFile 'src/main/AndroidManifest.xml'
                }
            }
        }

以上基本可以自由切换组件模式和集成模式。

另:在开发过程中需要获取组件状态,我们可以在BuildConfig文件中自动生成isModule

只需在build文件中填加

buildConfigField("boolean","isModule",String.valueOf(isModule))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值