Gradle其实是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。其实AS默认就为我们的app完成构建,并且每一个module的构建过程都是大同小异的,那么我们就可以提取共同点,比如公共的第三方库等,并且在组件化开发中必然离不开它。
一、公共配置config.gradle
创建一个工程,默认会构建app,在当前工程根目录下,新建config.gradle文件,代码如下:
ext {
//定以变量,决定当前环境是集成环境还是组件化环境
//集成环境:把所有的module作为library打包到app中,不可单独运行
//组件化环境:就是可以单独运行的module
isRelease = true
// 包名,用于存放APT生成的类文件
packageNameForAPT = "com.xinyartech.modulardemo.apt"
//配置defaultConfig下的信息
versionConfig = [
"compileSdkVersion": 28,
"buildToolsVersion": "29.0.0",
"minSdkVersion" : 15,
"targetSdkVersion" : 28,
"versionCode" : 1,
"versionName" : "1.0"
]
//配置appId 就是applicationId
appId = [
"app" : "com.xinyartech.modulardemo",
"main" : "com.xinyartech.main",
"personal": "com.xinyartech.personal"
]
supportLibrary = "28.0.0"
//测试版本和发布版本url地址
url = [
"debug" : "http://www.baidu.com",
"release": "http://www.google.com"
]
//配置第三方依赖
dependencies = [
"appcompat" : "com.android.support:appcompat-v7:$supportLibrary",
"recyclerview": "com.android.support:recyclerview-v7:${supportLibrary}",
"constraint" : "com.android.support.constraint:constraint-layout:1.1.3"
]
}
大致分为几个模块:
- isRelease:表示当前环境是集成化环境还是组件化环境,正式版本是集成化环境,值为true。开发过程中可以切换环境,方便测试
- versionConfig:全局配置当前sdk版本和app版本
- url:配置正式版本和测试版本服务器地址
- dependencies :配置依赖库
二、新建子模块modlue
这里新建子模块personal。在它的build.gradle中可以引用上面的配置,分为几个部分,截图说明。
1、集成化环境和组件化环境的切换
2、配置SDK版本和app版本号等
注意这里需要经isRelease配置到系统的BuildConfig文件中。只有这样我们才能在Java代码中使用BuildConfig.isRelease
2、配置本地依赖库和第三方依赖库等
使用最简单的方式进行引用第三方库
三、app配置
app模块可以看成是应用程序的主模块,我们可以在里面创建业务逻辑,也可以不作任何操作,所有的工作都交给子模块即可。它的配置和module相同点同样需要配置buildConfig,以及第三方依赖库。不同点就是在依赖module的时候,如下截图:
只有在集成化环境module作为library才能依赖,否则module作为可独立运行的app是不能依赖的。
以上就完成了基础gradle的配置。除了这些还有其他的一些gradle常用配置。
四、其他gradle配置
1、开启分包
在defaultConfig节点下,加上如下配置
2、svg使用v7包兼容
3、只保留指定和默认资源,减小apk体积
4、配置so库CPU架构(真机:arm,模拟器:x86)
5、源集 - 设置源集的属性,更改源集的 Java 目录或者自由目录等
6、签名配置(隐形坑:必须写在buildTypes之前)
在android节点下