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))
————————————————
原文链接:https://blog.csdn.net/wang_k516/article/details/90523530

你可能感兴趣的:(Android组件化之gradle配置)