一、项目根目录 build.gradle
// 项目级配置(版本目录需单独维护)
buildscript {
repositories {
// Google Maven 仓库(必须)
google()
// Maven Central 仓库(推荐)
mavenCentral()
}
dependencies {
// Gradle 插件版本(2023 推荐使用 8.1.0+)
classpath 'com.android.tools.build:gradle:8.1.0'
// Kotlin 插件(若使用 Kotlin)
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10"
}
}
// 全局版本管理(推荐使用 version catalog)
dependencyResolutionManagement {
versionCatalogs {
libs {
// 定义公共依赖版本
version('appcompat', '1.6.1')
version('material', '1.9.0')
// 声明依赖库
library('coil', 'io.coil-kt:coil-compose', '2.6.0')
}
}
}
// 其他全局配置
allprojects {
repositories {
google()
mavenCentral()
}
}
二、模块级 build.gradle(以 Java 库为例)
plugins {
// 应用 Android 插件
id 'com.android.library'
// 启用 Kotlin(可选)
id 'kotlin-android'
}
android {
// 编译 SDK 版本(推荐使用最新稳定版)
compileSdk 34
defaultConfig {
minSdk 24 // 最低支持 API 24(Android 7.0)
targetSdk 34
// 应用 ID(必须唯一)
applicationId "com.example.mylibrary"
// 版本配置(建议与 version catalog 对齐)
versionCode 1
versionName "1.0.0"
}
// 编译选项优化
compileOptions {
// Java 版本(推荐 17+)
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
// Kotlin 配置(若使用)
kotlinOptions {
jvmTarget = '17'
}
// 构建类型配置
buildTypes {
release {
// 混淆配置(推荐启用 R8)
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
// 使用 version catalog 中的依赖
implementation libs.appcompat
implementation libs.material
implementation libs.coil
// 本地模块依赖(示例)
api project(':network')
// 测试依赖
testImplementation 'junit:junit:4.13.2'
}
三、关键配置说明
1. Gradle 插件版本选择
| 插件版本 | 兼容 Android Studio | 主要特性 |
| 8.1.0 | Arctic Fox (2020.3) | 增量编译优化、Compose 支持增强 |
7.4.0 | IntelliJ 2022 | 更快的构建速度、依赖冲突检测 |
---|
2. 依赖管理升级
- 版本目录(Version Catalog)
在 settings.gradle
中启用:
dependencyResolutionManagement {
versionCatalogs {
libs {
// 定义版本别名
version('retrofit', '2.9.0')
// 声明依赖
library('retrofit', 'com.squareup.retrofit2:retrofit', 'retrofit')
}
}
}
-
在模块中使用:
implementation libs.retrofit
-
依赖配置类型扩展
implementation platform('com.google.firebase:firebase-bom:32.3.1') // 统一管理 BOM 版本
implementation 'com.google.firebase:firebase-analytics' // 自动继承 BOM 版本
3. 编译性能优化
android {
// 启用并行编译
dexOptions {
preDexLibraries = true
javaMaxHeapSize "4g"
}
// 增量编译配置
compileOptions {
incremental true
// 编码设置
encoding "UTF-8"
}
}
四、新特性实战示例
1. 动态功能模块(Dynamic Feature Module)
在 settings.gradle
中声明:
include ':app', ':dynamicfeature'
动态模块 build.gradle
:
android {
dynamicFeatures += [':dynamicfeature']
}
2. BuildConfig 自定义字段
android {
defaultConfig {
buildConfigField "String", "API_ENDPOINT", "\"https://api.example.com\""
buildConfigField "boolean", "USE_DEBUG_SERVER", "true"
}
}
使用时:
String endpoint = BuildConfig.API_ENDPOINT;
五、避坑指南
-
1.Java 版本冲突
- 错误现象:
Unsupported major.minor version 52.0
- 解决方案:统一
compileOptions
中的sourceCompatibility
和系统 JDK 版
- 错误现象:
2.依赖冲突处理
implementation('com.squareup.okhttp3:okhttp:4.12.0') {
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
}
-
3.混淆规则优化
# 保留所有 Activity 子类 -keep public class * extends android.app.Activity # 保留 Gson 序列化类 -keep class com.example.model.** { *; }
六、进阶配置
1. 多渠道打包(渠道号自动注入)
android {
flavorDimensions "default"
productFlavors {
google {
dimension "default"
manifestPlaceholders = [CHANNEL_VALUE: "google"]
}
huawei {
dimension "default"
manifestPlaceholders = [CHANNEL_VALUE: "huawei"]
}
}
}
2. 签名配置(推荐使用密钥库文件)
android {
signingConfigs {
release {
storeFile file("keystore.jks")
storePassword System.getenv("STORE_PASSWORD") // 从环境变量读取
keyAlias "my_key_alias"
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
七、工具链升级建议
-
1.升级 Gradle 版本
修改
gradle-wrapper.properties
:distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
-
2.启用严格编译模式
kotlinOptions { freeCompilerArgs += ["-Xexplicit-api=strict"] }
通过以上配置,可实现:
✅ 更快的增量编译速度
✅ 更安全的签名管理
✅ 更清晰的依赖版本控制
✅ 更好的多模块协作支持