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 的路径
相关推荐
帅得不敢出门8 小时前
安卓设备adb执行AT指令控制电话卡
android·adb·sim卡·at指令·电话卡
我又来搬代码了10 小时前
【Android】使用productFlavors构建多个变体
android
德育处主任11 小时前
Mac和安卓手机互传文件(ADB)
android·macos
芦半山11 小时前
Android“引用们”的底层原理
android·java
迃-幵12 小时前
力扣:225 用队列实现栈
android·javascript·leetcode
大风起兮云飞扬丶12 小时前
Android——从相机/相册获取图片
android
Rverdoser12 小时前
Android Studio 多工程公用module引用
android·ide·android studio
aaajj13 小时前
[Android]从FLAG_SECURE禁止截屏看surface
android
@OuYang13 小时前
android10 蓝牙(二)配对源码解析
android
Liknana13 小时前
Android 网易游戏面经
android·面试