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 的路径
相关推荐
恋猫de小郭5 小时前
Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
android·ide·android studio
aaaweiaaaaaa8 小时前
php的使用及 phpstorm环境部署
android·web安全·网络安全·php·storm
工程师老罗10 小时前
Android记事本App设计开发项目实战教程2025最新版Android Studio
android
pengyu14 小时前
系统化掌握 Dart 编程之异常处理(二):从防御到艺术的进阶之路
android·flutter·dart
消失的旧时光-194314 小时前
android Camera 的进化
android
基哥的奋斗历程16 小时前
Openfga 授权模型搭建
android·adb
划水哥~17 小时前
Kotlin函数式API
java·开发语言·kotlin
Pakho love1 天前
Linux:文件与fd(被打开的文件)
android·linux·c语言·c++
勿忘初心911 天前
Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
android·arm开发·经验分享·嵌入式硬件·mcu
lingllllove2 天前
PHP中配置 variables_order详解
android·开发语言·php