Android Studio Gradle->Android Studio创建项目后,生成文件详解

Gradle版本:gradle-8.0
Android Studio版本:Android Studio Giraffe | 2022.3.1 Patch 3

  • .gradle 文件夹
    • 作用:存储 Gradle 缓存和构建信息
    • 内容:包括 Gradle 构建缓存、已下载的依赖项等。这个文件夹可以安全地删除,Gradle 会在下次构建时重新生成它
  • .idea 文件夹
    • 作用:存储与 IntelliJ IDEAAndroid Studio 基于的 IDE)相关的项目配置
    • 内容:包括项目和模块设置、代码样式、运行配置等。这个文件夹对于项目在 Android Studio 中的正确打开和运行是必要的
  • .gitignore 文件
    • 作用:Git 配置文件,指定哪些文件和文件夹不应被版本控制系统(Git)跟踪
    • 内容:通常包括忽略编译输出、用户特定的配置文件、Gradle 缓存等
  • gradle 文件夹
    • 作用:包含 Gradle Wrapper 的配置
    • 内容:包含一个 wrapper 子文件夹,其中包括 gradle-wrapper.properties 文件和 gradle-wrapper.jar 文件,用于确保项目使用正确版本的 Gradle,把项目代码共享给其他人使用时,有可能伙伴没有安装gradle或者gradle版本过旧而无法运行代码,这个时候需要用到Gradle Wrappergradle -v是查看电脑全局的gardle版本, /.gradlew -v是查看当前工程文件的局部版本
      • gradle-wrapper.jar:包含 Gradle Wrapper 实现的 JAR 文件,负责下载和执行指定版本的 Gradle
      • gradle-wrapper.properties:一个配置文件,用于指定项目使用的 Gradle 版本及其下载位置
bash 复制代码
#Tue Aug 13 10:39:46 CST 2024
distributionBase=GRADLE_USER_HOME //指定 Gradle 发行版的基础存储位置
distributionPath=wrapper/dists // 指定相对于 distributionBase 基础目录的子路径
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip   //下载Gradle版本的URL
zipStoreBase=GRADLE_USER_HOME // 存储 ZIP 文件的基础存储位置
zipStorePath=wrapper/dists //指定相对于 zipStoreBase 基础目录的子路径
  • build.gradleProject 级别)
  • 作用:项目级别的 Gradle 构建文件
  • 内容:定义了全局的构建配置和依赖项管理,包括各个模块的构建依赖和构建配置。plugins 块用于声明项目或模块所需的插件及其版本,apply false 来延迟应用提高项目的构建管理效率
groovy 复制代码
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
	id 'com.android.application' version '8.1.3' apply false
	id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
}
  • app 文件夹
    • 作用:存储应用的源代码和资源。
    • 内容:
      • src/main/javaJavaKotlin 源代码
      • src/main/res:应用的资源文件(如布局、字符串、图像等)
      • src/main/AndroidManifest.xml:应用的清单文件,定义了应用的组件和权限
      • build.gradle (Module 级别):模块级别的 Gradle 构建文件,定义了该模块的构建依赖和构建配置
groovy 复制代码
plugins {
    id 'com.android.application' // 应用 Android 应用程序插件,用于构建 Android 应用
    id 'org.jetbrains.kotlin.android' // 应用 Kotlin Android 插件,用于支持在 Android 项目中使用 Kotlin 编程语言
}

android {
    namespace 'com.yang.gradleDemo' // 定义应用程序的命名空间,用于生成 R 类和其他资源
    compileSdk 33

    defaultConfig {
        applicationId "com.yang.gradleDemo" // 应用程序的唯一标识符
        minSdk 24
        targetSdk 33
        versionCode 1 // 应用程序的版本代码,用于内部版本管理
        versionName "1.0" // 应用程序的版本名称,显示给用户
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // 指定用于运行仪器测试的测试运行器
    }

    buildTypes {
        release { // 定义发布版本的构建类型
            minifyEnabled false // 是否启用代码缩减(ProGuard/R8),这里设置为不启用
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 指定 ProGuard 配置文件,用于代码混淆和优化
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8 // 指定 Java 源代码的兼容性版本
        targetCompatibility JavaVersion.VERSION_1_8 // 指定编译后的字节码的兼容性版本
    }
    kotlinOptions {
        jvmTarget = '1.8' // 指定 Kotlin 编译器生成与 Java 8 兼容的字节码
    }
}

// 各种依赖
dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
  • settings.gradle文件
    • 作用:定义项目的设置,包括哪些模块包含在项目中
    • 内容:列出所有包含在项目中的模块
groovy 复制代码
pluginManagement { // 配置插件管理,包括插件仓库
    repositories { // 指定用于解析插件的仓库
        google() // Google 的 Maven 仓库,常用于 Android 相关插件
        mavenCentral() // Maven 中央仓库,广泛用于各种 Java 和 Kotlin 插件
        gradlePluginPortal() // Gradle 官方的插件门户,包含各种 Gradle 插件
    }
}

dependencyResolutionManagement { // 配置依赖解析管理,包括依赖项仓库
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) // 设置仓库模式为 FAIL_ON_PROJECT_REPOS,防止在项目级别配置仓库
    repositories { // 指定用于解析依赖项的仓库
        google() // Google 的 Maven 仓库,常用于 Android 相关库
        mavenCentral() // Maven 中央仓库,广泛用于各种 Java 和 Kotlin 库
    }
}

rootProject.name = "gradleDemo" // 设置根项目的名称为 "gradleDemo"
include ':app' // 包含名为 ":app" 的子项目或模块
  • gradle.properties文件
    • 作用:Gradle 的配置文件,定义项目构建过程中的一些全局属性
    • 内容:可以设置内存使用、守护进程配置等
groovy 复制代码
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 // 设置 JVM 参数以优化 Gradle 构建过程的性能和兼容性
android.useAndroidX=true // 启用 AndroidX 库,确保项目使用最新的支持库
kotlin.code.style=official // 设置 Kotlin 代码风格,确保团队成员遵守统一的代码规范
android.nonTransitiveRClass=true // 启用非传递性的 R 类,减少构建时间和方法数,特别是在多模块项目中
  • . gradlew
    • 作用:Linux/macOS 上的 Gradle Wrapper 脚本
    • 内容:用于在没有安装 Gradle 的情况下运行项目的构建
  • gradlew.bat
    • 作用:Windows 上的 Gradle Wrapper 脚本
    • 内容:用于在没有安装 Gradle 的情况下运行项目的构建
  • local.properties
    • 作用:定义本地机器上的特定属性,如 SDK 的路径
    • 内容:通常包含 Android SDK 的路径
相关推荐
阿巴斯甜18 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker19 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952720 小时前
Andorid Google 登录接入文档
android
黄林晴21 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android