Android Studio 项目文件夹结构详解
文章目录
- 一、项目视图概览
- 1. Android 视图(简化视图)
- 2. Project 视图(完整物理结构)
- 二、核心目录详解
- 1. 项目根目录文件
- 2. app 模块目录(主模块)
- 2.1 `manifests/`
- 2.2 `java/`
- 2.3 `res/` - 资源目录
- 2.4 `assets/`
- 2.5 `build.gradle` (模块级)
- 三、构建系统相关目录
- 1. `.gradle/`
- 2. `build/`
- 3. `gradle/`
- 四、多模块项目结构
- 五、特殊目录和文件
- 1. `proguard-rules.pro`
- 2. `res/values/` 下的配置文件
- 3. `res/xml/`
- 六、最佳实践
- 七、常见问题

Android Studio 的项目结构遵循一定的规范和约定,了解这些结构对于高效开发至关重要。下面我将详细介绍标准的 Android 项目文件夹结构及其各部分功能。
一、项目视图概览
在 Android Studio 中,可以通过多种视图查看项目结构,最常用的是 Android 视图 和 Project 视图。
1. Android 视图(简化视图)
项目名称/
├── app/
│ ├── manifests/
│ ├── java/
│ ├── res/
│ └── Gradle Scripts/
├── Gradle Scripts/
└── 其他模块/
2. Project 视图(完整物理结构)
项目名称/
├── .gradle/ // Gradle 构建系统生成的文件
├── .idea/ // IDE 配置文件
├── app/ // 主模块
│ ├── build/ // 构建输出
│ ├── libs/ // 本地库文件
│ ├── src/ // 源代码和资源
│ │ ├── androidTest // 仪器测试
│ │ ├── main/ // 主源代码
│ │ │ ├── assets/ // 原始资源文件
│ │ │ ├── java/ // Java/Kotlin 源代码
│ │ │ ├── res/ // 应用资源
│ │ │ └── AndroidManifest.xml
│ │ └── test/ // 单元测试
│ └── build.gradle // 模块级构建配置
├── gradle/ // Gradle 包装器文件
├── build/ // 项目级构建输出
└── settings.gradle // 项目设置文件
二、核心目录详解
1. 项目根目录文件
文件/目录 | 说明 |
---|---|
settings.gradle | 定义项目包含哪些模块 |
build.gradle (项目级) | 项目级别的构建配置 |
gradle.properties | Gradle 配置属性 |
local.properties | 本地环境配置(SDK路径等) |
gradlew / gradlew.bat | Gradle 包装器脚本 |
2. app 模块目录(主模块)
2.1 manifests/
包含 AndroidManifest.xml
文件,定义:
- 应用包名
- 组件声明(Activity, Service等)
- 权限要求
- 应用元数据
2.2 java/
源代码目录,通常包含三个子目录:
main/java/
- 主源代码test/java/
- 本地单元测试(JUnit)androidTest/java/
- 仪器化测试(运行在设备上)
2.3 res/
- 资源目录
res/
├── drawable/ // 位图和矢量图
├── drawable-v24/ // API 24+特定资源
├── layout/ // UI布局文件
├── mipmap/ // 应用图标(不同密度)
├── values/ // 简单值资源
│ ├── colors.xml // 颜色定义
│ ├── strings.xml // 字符串资源
│ ├── styles.xml // 样式定义
│ └── dimens.xml // 尺寸定义
├── anim/ // 动画资源
├── font/ // 字体文件
├── raw/ // 原始资源文件
└── xml/ // 其他XML配置
2.4 assets/
存放原始资源文件,与 res/
不同:
- 文件会按原样打包到APK中
- 需要通过
AssetManager
访问 - 适合存放数据文件、游戏资源等
2.5 build.gradle
(模块级)
模块级别的构建配置,包含:
- 应用插件(com.android.application/library)
- android 配置(compileSdkVersion, defaultConfig等)
- 依赖项(dependencies)
三、构建系统相关目录
1. .gradle/
Gradle 构建系统生成的文件,包括:
- 构建缓存
- 守护进程文件
- 通常不需要手动修改
2. build/
构建输出目录,包含:
outputs/
- 生成的APK/AAB文件intermediates/
- 中间文件reports/
- 构建报告tmp/
- 临时文件
3. gradle/
包含 Gradle 包装器文件:
wrapper/gradle-wrapper.jar
- 包装器实现wrapper/gradle-wrapper.properties
- 配置使用的Gradle版本
四、多模块项目结构
大型项目通常采用多模块结构:
项目名称/
├── app/ // 主应用模块
├── feature-auth/ // 功能模块(如认证)
├── library-core/ // 核心库模块
├── library-network/ // 网络库模块
└── build.gradle // 项目级配置
每个模块都有自己的 build.gradle
和结构,类似于主模块。
五、特殊目录和文件
1. proguard-rules.pro
代码混淆规则文件,用于发布构建。
2. res/values/
下的配置文件
文件 | 用途 |
---|---|
strings.xml | 字符串资源 |
colors.xml | 颜色定义 |
dimens.xml | 尺寸定义 |
styles.xml | 样式和主题 |
arrays.xml | 数组资源 |
attrs.xml | 自定义属性 |
3. res/xml/
用于存放各种XML配置文件,如:
- 网络安全性配置
- 首选项配置
- 备份规则
六、最佳实践
-
合理组织包结构:
- 按功能而非类型分包
- 示例:
com.example.app/ ├── auth/ // 认证相关 ├── home/ // 首页相关 ├── profile/ // 个人资料 ├── data/ // 数据层 │ ├── local/ // 本地数据 │ └── remote/ // 远程数据 └── utils/ // 工具类
-
资源文件命名:
- 使用小写字母和下划线:
btn_submit.xml
- 前缀表明用途:
ic_
(图标),bg_
(背景)等
- 使用小写字母和下划线:
-
模块化设计:
- 将独立功能拆分为模块
- 公共代码提取为库模块
-
版本控制忽略:
合理的.gitignore
应包含:.gradle/ .idea/ build/ local.properties *.iml
七、常见问题
-
找不到R文件:
- 清理并重建项目(Build → Clean Project)
- 检查XML资源文件是否有错误
-
资源文件冲突:
- 确保同名资源不在同一目录
- 使用资源限定符(如
drawable-en/
)
-
模块依赖问题:
- 确保在
settings.gradle
中包含了所有模块 - 检查模块
build.gradle
中的依赖声明
- 确保在
-
构建速度慢:
- 启用Gradle缓存:
org.gradle.caching=true
- 配置Gradle守护进程内存
- 启用Gradle缓存:
通过理解Android Studio项目结构,您可以更高效地组织代码和资源,构建可维护的Android应用程序。