自由的羽毛 发表于 2025-4-16 05:58:19

Android Studio 项目文件夹布局详解

https://i-blog.csdnimg.cn/direct/3deae9a89d2e4a80aed96b0ffbf65cc2.png
Android Studio 的项目布局依照一定的规范和约定,了解这些布局对于高效开发至关重要。下面我将详细先容标准的 Android 项目文件夹布局及其各部分功能。
一、项目视图概览

https://i-blog.csdnimg.cn/direct/65ababf8f440468ea0f711b06ab5b08a.png
在 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.propertiesGradle 设置属性local.properties本地情况设置(SDK路径等)gradlew / gradlew.batGradle 包装器脚本 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)
三、构建系统相干目录

https://i-blog.csdnimg.cn/direct/2d4743f08d594f7d8e2c5465d7ecb32b.png
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设置文件,如:


[*]网络安全性设置
[*]首选项设置
[*]备份规则
https://i-blog.csdnimg.cn/direct/931b39eb399e498ab5cc022c61892592.png
六、最佳实践


[*] 合理构造包布局:

[*]按功能而非范例分包
[*]示例: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保卫历程内存

通过理解Android Studio项目布局,您可以更高效地构造代码和资源,构建可维护的Android应用程序。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android Studio 项目文件夹布局详解