一 buildscript
buildscript:这里面的声明(repositories,dependencies)是
gradle脚本自身需要使用的资源,会优先加载,
而外面的声明(repositories,dependencies)是项目需要使用的资源
repositories :托管第三方插件的平台
dependencies :具体路径
二 buildType,productFlavors的联系
buildType,productFlavors :都能生成不同的apk。
buildType :
构建类型,debug(本地调试) ,release(服务区编译或打包给系统集成的版本)
productFlavors :
多渠道,多项目区分 ,可以指定java,资源文件路径,及动态区分不同flavor的代码编写。
可以通过sourceSets 指定对应的代码目录,
也可以通过属性值BuildConfig.FLAVOR(也可以自定义属性值)来区分进而差异化代码编写
还可以flavorDimensions进一步细分不同的版本
三 集中管理
defaultConfig :项目的默认配置
一般会把 defaultConfig ,dependencies中公用的部分单独抽出来给各个模块调用。
比如:
1 抽android版本信息相关
直接抽取到ext里,抽到根build.gradle就能直接引用到ext了
ext {versionName = 'V1.0.1'versionCode = 1compileSdkVersion = 33minSdkVersion = 26targetSdkVersion = 30 }
然后:
其他项目使用:compileSdk rootProject.ext.compileSdkVersion
2 抽dependencies:
新建buildSrc/src/main/java/Versions.java
public class Versions {
public static final String testVersion = "com.yangtest.navi.test4.10.0";
}
然后:
implementation Versions.testVersion
还有一些其他关键字:
resConfigs :指定我们需要的strings资源,包括过滤 drawable文件夹的资源等
sourceSets :Java源代码文件和资源文件的集合
signingConfigs :签名配置
熟记这些基本当前项目就够了,自定义拼接版本号,自定义adb执行指令等都还好,不常用就不写了