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.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)
三、构建系统相干目录
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保卫历程内存
通过理解Android Studio项目布局,您可以更高效地构造代码和资源,构建可维护的Android应用程序。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |