当前位置: 首页 > ds >正文

Android 项目的核心配置文件

配置文件关系图

|—— 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 falseid 'com.android.library' version '7.4.2' apply falseid '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.compiledefaultConfig {applicationId "com.example.myapp"minSdk rootProject.ext.sdk.mintargetSdk rootProject.ext.sdk.targetversionCode 1versionName "1.0"}buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}buildFeatures {viewBinding truecompose true}
}dependencies {implementation rootProject.ext.libraries.appcompatimplementation 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

作用:代码优化和混淆

http://www.xdnf.cn/news/12042.html

相关文章:

  • 数据结构第一章
  • 边缘计算网关赋能沸石转轮运行故障智能诊断的配置实例
  • Flutter如何支持原生View
  • Unity安卓平台开发,启动app并传参
  • 如何配置一个sql server使得其它用户可以通过excel odbc获取数据
  • 【大模型:知识图谱】--5.neo4j数据库管理(cypher语法2)
  • rknn优化教程(一)
  • DPO算法微调实战
  • 微信小程序动态组件加载的应用场景与实现方式
  • 双电机差速控制的MATLAB Simulink仿真方案,使用PWM和PID调节实现360°转向与速度控制
  • 分类预测 | Matlab实现CNN-BiLSTM-Attention高光谱数据分类预测
  • PostgreSQL的扩展 pg_buffercache
  • TDengine 开发指南——高效写入
  • ​BEV和OCC学习-3:mmdet3d 坐标系
  • 知识拓展卡————————关于Access、Trunk、Hybrid端口
  • Duix.HeyGem:以“离线+开源”重构数字人创作生态
  • Rust 控制流
  • 共识机制全景图:PoW、PoS 与 DAG 的技术对比
  • 华为设备OSPF配置与实战指南
  • 一键更新依赖全指南:Flutter、Node.js、Kotlin、Java、Go、Python 等主流语言全覆盖
  • Elasticsearch索引(Index)介绍,它与数据库中的表有什么区别?
  • Monorepo架构: 项目管理工具介绍、需求分析与技术选型
  • 2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
  • 2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
  • 国芯思辰| 适用于小家电的触摸型8051核微控制器AiP8F3232
  • 链路状态路由协议-OSPF
  • 从Node.js到React/Vue3:流式输出技术的全栈实现指南
  • Win11系统输入时首字母丢失 - 解决方案
  • layer norm和 rms norm 对比
  • es地理信息索引的类型以及geo_point‌和geo_hash的关系