news 2026/7/31 15:03:13

Android 根目录相关文件说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android 根目录相关文件说明

打开 Android Studio 项目,第一层就是项目根目录,很多人只会点开 app 模块写代码,完全不知道外层文件作用,下面按「必懂核心」「构建配置」「Git&忽略」「缓存日志」分类讲清楚,同时附上 app 模块内部关键文件。

一、根目录第一层整体结构预览

项目名/ ├── .gradle/ Gradle 构建缓存目录(不用管) ├── .idea/ Android Studio 配置文件(IDE专属) ├── app/ 主应用模块(99%业务代码在这里) ├── build/ 整个项目构建输出产物(可删除) ├── gradle/ Gradle Wrapper 包装脚本,控制Gradle版本 ├── .gitignore Git忽略文件配置 ├── build.gradle.kts 【全局项目构建配置(根级)】 ├── gradle.properties 全局Gradle属性、开关、AndroidX配置 ├── gradlew / gradlew.bat 跨平台Gradle执行脚本(Mac/Windows) ├── local.properties 本地SDK路径、NDK路径(每个人电脑不一样) ├── settings.gradle.kts 项目模块注册入口,告诉Gradle有哪些子模块

二、逐个文件详细解释

1. settings.gradle.kts 【超级重要】

作用:告诉 Gradle 当前项目包含哪些子模块,是项目入口清单
默认内容:

pluginManagement{repositories{google()mavenCentral()}}dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{google()mavenCentral()}}// 注册app模块include(":app")
  • 新增 library 组件化模块,必须在这里include(":xxx"),否则AS识别不到;
  • 里面同时配置了依赖仓库地址(google、mavenCentral)。

2. 根目录 build.gradle.kts(项目全局构建)

只做一件事:全局声明 AGP、Kotlin 插件版本,所有子模块共用
典型内容:

plugins{id("com.android.application")version"9.3.0"applyfalseid("com.android.library")version"9.3.0"applyfalseid("org.jetbrains.kotlin.android")version"2.0.0"applyfalse}
  • apply false:只定义版本,不在根目录直接运行插件;
  • app 模块只需要直接引用插件,不用重复写版本,统一版本避免冲突。

3. gradle.properties 全局配置文件(高频修改)

整个项目全局开关、常量、编译参数都写这里
常用配置:

# 开启AndroidX、Jetifier兼容(新项目必开) android.useAndroidX=true android.enableJetifier=true # JVM内存、并行构建 org.gradle.jvmargs=-Xmx4g org.gradle.parallel=true # 全局版本常量,子模块直接引用 minSdkVersion=24 targetSdkVersion=36 compileSdkVersion=36

用途:

  • 统一 minSdk、compileSdk,改一处全部模块生效;
  • 开启构建加速、AndroidX、R类优化等开关。

4. local.properties 【本地环境配置,禁止提交Git】

记录当前电脑本地环境路径,每台电脑自动生成,内容不一样
示例:

sdk.dir=C\:\\Users\\xxx\\AppData\\Local\\Android\\Sdk ndk.dir=xxx
  • 作用:告诉项目本机 Android SDK 安装在哪;
  • 换电脑、换SDK路径会自动重新生成,不要手动修改,不要上传代码仓库。

5. gradle 文件夹(控制Gradle版本核心)

gradle/wrapper/ └── gradle-wrapper.properties

唯一核心文件:gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-all.zip

决定当前项目用哪个 Gradle 版本,也就是你上一问关心的多版本管理的源头。

6. gradlew / gradlew.bat 脚本文件

  • gradlew:Mac / Linux 终端执行构建脚本
  • gradlew.bat:Windows CMD/PowerShell 执行脚本

使用示例:

# Mac打包正式包./gradlew assembleRelease# Windowsgradlew.bat assembleRelease

强制建议:永远用这两个脚本构建,不要用系统全局gradle,避免版本错乱

7. .gitignore Git忽略文件

配置哪些文件不需要提交到代码仓库,模板内容:

# 构建产物 /build/ /.gradle/ # 本地环境文件 local.properties # IDE配置 .idea/caches # 日志、APK、签名文件 *.apk *.log

作用:防止每个人IDE缓存、编译产物、本地路径冲突提交上去。

8. .idea 文件夹(Android Studio IDE配置)

存放:代码格式化规则、运行配置、索引、模块配置、版本控制记录

  • 只给AS用,Gradle构建不依赖
  • 可以加入git提交,团队统一代码风格;也可以忽略,不影响项目运行。

9. .gradle 文件夹

Gradle 构建过程缓存、依赖缓存、任务缓存

  • 可以随时删除,下次构建自动重新生成;
  • 体积很大,定期删除可清理C盘空间。

10. 根目录 build 文件夹

整个项目编译中间产物、依赖解压包
完全可删,清理构建异常第一操作:删除所有build文件夹重新Sync


三、顺带:app 模块内部关键文件(日常写代码最常用)

进入app/文件夹:

  1. app/build.gradle.kts
    单个模块构建配置:applicationId、minSdk、签名、依赖、buildTypes、混淆开启等,每天都要改。
  2. app/src/main/AndroidManifest.xml
    App清单文件:包名、权限、Activity注册、启动页、应用图标、组件声明,安卓系统识别App的入口。
  3. app/src/main/javaJava/Kotlin 业务代码目录
  4. app/src/main/res资源目录(布局layout、图片drawable、字符串strings、样式style)
  5. app/proguard-rules.pro代码混淆规则文件

四、极简记忆口诀

  1. settings.gradle.kts:登记有几个模块
  2. build.gradle.kts:统一锁定AGP、Kotlin版本
  3. gradle.properties:全局开关和版本常量
  4. local.properties:本机SDK路径(不上传git)
  5. gradle-wrapper.properties:锁定项目Gradle版本
  6. gradlew:执行构建命令
  7. app/build.gradle.kts:单个App打包、依赖、编译配置

五、新手避坑小规则

  1. 不要删除gradle文件夹、gradlew脚本,否则项目无法构建;
  2. local.properties永远不要提交Git;
  3. 构建报错先删所有build.gradle文件夹重新同步;
  4. 多版本Gradle只改本项目gradle-wrapper.properties,不动全局环境。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 14:56:53

怀旧动作 MMORPG《龙之谷启程》正版官方客户端下载指引,九神怀旧游戏正规安全渠道指南

副本是《龙之谷启程》手游贯穿新手开荒、中期成型、后期毕业的核心基础玩法,所有角色等级提升、装备成型、纹章养成、强化材料积累、巢穴解锁的核心资源,全部依托各类副本产出。游戏副本体系层级清晰、分工明确,包含普通主线副本、英雄难度副…

作者头像 李华
网站建设 2026/7/31 14:49:12

SM2国密算法实战:从密钥生成到安全通信的完整Python实现

1. 项目概述:为什么SM2值得你投入时间 最近几年,无论是在金融、政务还是物联网领域,一个词被反复提及:国密算法。而SM2作为其中的非对称加密算法代表,已经从“可选”变成了很多场景下的“必选”。我接触过不少项目&…

作者头像 李华
网站建设 2026/7/31 14:46:57

AWK文本处理实战:从核心原理到高效数据分析应用

1. 从文本处理到数据洞察:为什么说AWK是Shell程序员的瑞士军刀? 干了这么多年运维和数据处理,要说在Linux命令行里哪个工具让我又爱又“恨”,AWK绝对排得上号。爱的是,它处理结构化文本的效率之高,常常让我…

作者头像 李华
网站建设 2026/7/31 14:46:06

shutdown、reboot开关机规范实操

shutdown、reboot开关机规范实操一、实验目的掌握Linux正规关机、重启命令,规范服务器开关机操作。二、实验环境CentOS7.9系统三、操作步骤立即重启服务器Bashreboot立即关机Bashshutdown -h now定时10分钟后关机Bashshutdown -h 10四、结果验证服务器正常执行重启、…

作者头像 李华
网站建设 2026/7/31 14:44:28

终极无损图片转PDF指南:如何用img2pdf保持像素级完美

终极无损图片转PDF指南:如何用img2pdf保持像素级完美 【免费下载链接】img2pdf mirror of https://gitlab.mister-muffin.de/josch/img2pdf for Travis and appveyor CI 项目地址: https://gitcode.com/gh_mirrors/im/img2pdf 还在为图片转PDF后质量下降而烦…

作者头像 李华
网站建设 2026/7/31 14:42:39

Vue-ECharts:终极Vue数据可视化组件完整指南

Vue-ECharts:终极Vue数据可视化组件完整指南 【免费下载链接】vue-echarts Vue.js component for Apache ECharts™. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-echarts Vue-ECharts是专为Vue.js开发者设计的强大数据可视化组件,基于Apac…

作者头像 李华