当前位置: 首页 > article >正文

Android Studio 项目结构分析

Android Studio 项目在 Project 模式(真实目录结构) 下的组成,分为 外层目录 和 app 模块目录 两部分。 

一、外层目录结构及作用

  1. .gradle & .idea:Android Studio 自动生成的文件,无需手动编辑。
  2. app:项目核心开发目录,代码、资源等内容的主要存放位置,后续开发重点。
  3. build:编译时自动生成的文件,无需关注。
  4. gradle:包含 Gradle Wrapper 配置,可配置自动下载 Gradle(需在 Settings 中启用)。
  5. .gitignore:排除指定目录 / 文件的版本控制,后续学习版本控制时使用。
  6. build.gradle:项目全局的 Gradle 构建脚本,一般无需修改。
  7. gradle.properties:全局 Gradle 配置,影响所有 Gradle 编译脚本。
  8. gradlew & gradlew.bat:命令行执行 Gradle 命令的脚本,分别用于 Linux/Mac 和 Windows。
  9. .iml:IntelliJ IDEA 项目标识文件,自动生成,无需修改。
  10. local.properties:指定本地 Android SDK 路径,自动生成,仅 SDK 位置变更时修改。
  11. settings.gradle:管理项目引入的模块,默认自动处理,手动修改场景少。

你会发现,除了app目录之外,大多数的文件和目录都是自动生成的,我们并不需要进行修改。 

二、app 模块目录结构及作用

项目模式结构更换为【Android】 

 Android Studio 中 Android 模式的项目结构,核心内容如下:

1. app 模块

  • 项目开发的核心目录,应用的代码、资源、配置等均存放在此,是开发的主要工作区域。

2. manifests 目录

  • 放配置文件的
  • 包含 AndroidManifest.xml 文件,这是XML格式的Android程序声明文件:
    • 注册四大组件、声明应用权限,这些信息包括应用程序名称、图标、包名称、模块组成、授权等,高频使用。
    • 每个Android程序必须在根目录下包含一个AndroidManifest.xml文件

3. java 目录

  • 主代码com.example.myapplication 存放项目的业务逻辑代码(如 Activity、Fragment 等)。
  • 测试代码
    • com.example.myapplication (androidTest):用于编写 Android 仪器测试(Android Test)用例,可测试与 Android 系统交互的功能。
    • com.example.myapplication (test):用于编写单元测试(Unit Test)用例,测试独立代码逻辑。

4. res 资源目录

  • 存放项目的各种资源,按类型细分:
    • drawable:普通图片资源(如 .png、.jpg)。
    • layout:界面布局文件(如 XML 定义的 Activity 布局)。
    • mipmap:应用图标(Icon),适配不同分辨率。
    • values:存储字符串(strings.xml)、样式(styles.xml)、颜色(colors.xml)等配置型资源。
    • xml:存放其他自定义 XML 文件(如动画配置、自定义视图布局等)。
    • res (generated):自动生成的资源(如编译过程中生成的文件)。

5. Gradle Scripts

  • 与项目构建相关的 Gradle 脚本目录,包含构建配置文件(如 build.gradle),配置项目构建参数。

        这种结构是 Android Studio 简化展示的 Android 模式,将复杂的真实目录抽象为更适合开发的视图,方便开发者快速定位代码、资源和配置文件。

        我们要明确开发重心(如 app/res 处理资源、app/java 编写代码),理解自动化生成文件的作用,避免误操作。


http://www.kler.cn/a/595058.html

相关文章:

  • AI 赋能应急管理:ChatGPT、DeepSeek、Grok 的应用探索
  • 国家雪亮工程政策护航,互联网监控管理平台铸就安全防线
  • 搜广推校招面经五十五
  • 【PCIe 总线及设备入门学习专栏 3.2 -- PCIe 在进行大数据搬运时是如何组包的?】
  • docker-存储卷-网络
  • 基于百分位裁剪(percentile clipping)归一化方法
  • tcpdump-快速查询版-常用后缀
  • 父子组件传递数据和状态管理数据
  • 今日行情明日机会——20250321
  • 【自学笔记】Web3基础知识点总览-持续更新
  • 如何提升库存系统的高并发和稳定性:算法与设计模式
  • pdm self update 504 gateway timeout
  • pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)
  • 绕过 reCAPTCHA V2/V3:Python、Selenium 指南
  • AD(Altium Designer)已有封装库的基础上添加器件封装
  • 考研c语言复习之栈
  • 深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)
  • Python 元组(tuple)大全
  • PostgreSQL_数据回退,数据库导出、导入
  • 洛谷 P2157 [SDOI2009] 学校食堂