配置文件关系图
|—— settings.gragle # 模块管理
|—— build.gradle # 项目级构建配置
|—— gradle.properties # Gradle 全局属性
|—— local.properties. # 本地 SDK 路径
|—— app/ # 主应用模块
|—— build.gradle # 模块级构建配置
|—— src/main
|—— AndroidManifest.xml # 应用清单
|—— res/ # 资源文件
|—— value/ # 字符串、颜色等
|—— layout/ # 布局文件
|—— drawable # 图片资源
|—— proguard-rules.pro # 混淆规则
1 setting.gradle 模块管理
路径:项目根目录/build.gradle
作用:
- 插件管理;
- 依赖解析管理;
- 应用名称;
- 定义项目中包含的模块;
// 插件管理 统一配置项目中所有 Gradle 插件的下载来源和解析规则
pluginManagement {
// 插件仓库配置
repositories {
maven { url 'https://jitpack.io' } // 自定义仓库
google() // Google 的 Maven 仓库(含 Android 插件)
mavenCentral() // Maven 中央仓库
gradlePluginPortal() // Gradle 官方插件门户
}
}
// 依赖解析管理:统一管理项目中所有依赖库下载来源和解析规则
dependencyResolutionManagement {
// 如果模块声明私有仓库,则构建失败(强制集中管理,提高安全性)
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://jitpack.io' }
google()
mavenCentral()
}
}
rootProject.name = "ixuea" // 应用名称
include ':app' // 主模块
模块中如何使用:
// app/build.gradle
plugins {
id 'com.android.application'
}
dependencies {
// 使用版本目录中的依赖
implementation deps.deps.libs.androidx.core
}
2 build.gradle
build.gradle 文件分为两种级别:项目级和模块级。
2.1 项目级 build.gradle
路径:项目根目录/build.gradle
作用:配置整个项目的插件依赖、全局依赖版本管理
// 项目级配置
plugins {
// apply false 表示声明插件但不立即应用到当前项目(即根项目),供子模块使用
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}
// 全局依赖版本管理
ext {
// SDK 版本配置
sdk = [
min: 24,
target: 34,
compile: 34
]
// 依赖版本管理
versions = [
kotlin: '1.9.20',
retrofit: '2.9.0',
room: '2.6.0'
]
// 完整依赖声明
libraries = [
appcompat: "androidx.appcompat:appcompat:1.6.1",
retrofit: "com.squareup.retrofit2:retrofit:${versions.retrofit}",
room: "androidx.room:room-runtime:${versions.room}"
]
}
2.2 模块级 build.gradle
路径:模块目录(如 app)/build.gradle
作用:配置特定模块的构建规则、依赖
plugins {
// 应用插件 - 不需要指定版本(已在根项目声明)
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.example.myapp'
compileSdk rootProject.ext.sdk.compile
defaultConfig {
applicationId "com.example.myapp"
minSdk rootProject.ext.sdk.min
targetSdk rootProject.ext.sdk.target
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
viewBinding true
compose true
}
}
dependencies {
implementation rootProject.ext.libraries.appcompat
implementation rootProject.ext.libraries.retrofit
// 使用版本变量组合依赖
implementation "androidx.room:room-runtime:${rootProject.ext.versions.room}"
}
3 gradle.properties
路径:模块目录(如 app)/gradle.properties
作用:用于定义项目范围的属性和 Gradle 构建的环境设置
# 配置 JVM 内存
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# 强制使用 AndroidX 库
android.useAndroidX=true
# Kotlin 代码规范
kotlin.code.style=official
# Android 构建优化
android.nonTransitiveRClass=true
# 自动迁移支持库到 AndroidX
android.enableJetifier=true
4 local.properties
路径:项目根目录/gradle.properties
作用:用于存储本地开发环境特有的设置
sdk.dir=/Users/[用户名]/Library/Android/sdk
5 proguard-rules.pro
路径:模块目录(如 app)/proguard-rules.pro
作用:代码优化和混淆