Android 项目的基本结构

进入 Android Studio 后, 默认进入的是 Android 结构, 这里以 Project 为例.

在这里插入图片描述

1. 外层结构

在这里插入图片描述

  1. .gradle 和 .idea: 目录下是 Android Studio 自动创建的一些文件.
  1. app: 项目内代码、资源均存放在这个目录下. 项目开发的工作基本都是在这个目录下进行的.
  1. gradle: 目录下包含了 gradle wrapper 的配置文件, 使用 gradle wrapper 的方式不需要提前将 gradle 下载好, 而是会自动根据本地的缓存情况决定是否需要联网下载 gradle. Android Studio 默认没有启动 gradle wrapper 的方式. 若需要打开, 可以点击 Android Studio 导航栏 => File => Settings => Build, Execution, Deployment => Gradle, 进行配置更改.
  1. .gitignore: 用来将指定的目录或文件排除在版本控制之外的.
  1. bulid.gradle: 整个 Android 项目的基础配置文件, 内容主要包含了两个方面:
    5.1 声明仓库的源, 这里可以看到是指明的 jcenter(), 之前版本则是 mavenCentral(), jcenter 可以理解成是一个新的中央远程仓库, 兼容 maven 中心仓库, 而且性能更优.
    5.2 另一个是声明了 android gradle plugin 的版本.
  1. gradle.properties: 全局 gradle 配置文件, 其中的属性会影响项目中所有 gradle 编译脚本.
  1. gradlew和gradlew.bat: 用来在命令行中执行gradle命令, 前者在 Linux 或 Mac 中使用, 后者在 Windows 中使用.
  1. local.properties: 这个文件用于指定本机中的 Android SDK 路径, 通常内容都是自动生成的, 我们并不需要修改. 除非你本机中的 Android SDK 位置发生了变化, 那么就将这个文件中的路径改成新的位置即可. 也可以在这里配置 NDK 路径, 格式与 SDK 一样.
  1. MyApplication.iml: iml 文件是所有 IntelliJ IDEA 项目都会自动生成的一个文件 (Android Studio 是基于 IntelliJ IDEA 开发的), 用于标识这是一个 IntelliJ IDEA 项目, 我们不需要修改这个文件中的任何内容.
  1. setting.gradle: 全局的项目配置文件, 里面主要声明一些需要加入 gradle 的 module. 也就是指定项目中所有引入的模块. 由于 HelloWorld 项目中就只有一个 app 模块, 因此该文件中也就只引入了 app 这一个模块. 通常情况下模块的引入都是自动完成的, 需要我们手动去修改这个文件的场景可能比较少.

2. app 目录结构

在这里插入图片描述

  1. build: 这个目录和外层的 build 目录类似, 主要也是包含了一些在编译时自动生成的文件, 不过它里面的内容会更多更杂, 我们不需要过多关系.
  1. libs: 若项目中使用到了第三方 jar 包, 就需要把 jar 包都放在 libs 目录下, 放在这个目录下的 jar 包都会被自动添加到构建路径里去.
  1. src/AndroidTest: 此处是用来编写 Android Test 测试用例的, 可以对项目进行一些自动化测试.
  1. src/main/java: java 目录是放置所有 java 代码的地方.
  1. src/main/res: res/ 目录包含所有资源 (在子目录中): 一个图像资源、两个布局资源、启动器图标的 mipmap/ 目录以及一个字符串资源文件. 资源目录名称非常重要.
  1. main/AndroidManifest.xml: 整个 Android 项目的配置文件, 在程序中定义的所以四大组件都需要在这个文件里注册, 另外还可以在这个文件中给应用程序添加权限声明.
  1. test: 此处是用来编写 Unit Test 测试用例的, 是对项目进行自动化测试的另一种方式.
  1. .gitignore: 文件用于将 app 模块内的指定的目录或文件排除在版本控制之外, 作用和外层的 .gitignore 文件类似.
  1. app.iml: IntelliJ IDEA 项目自动生成的文件, 不需要关心或修改这个文件中的内容.
  1. build.gradle: 具体 module 的配置文件, 针对具体 module 的构建相关修改都应该集中在这里.
  1. proguard-rules.pro: 文件用于对 module 内的文件进行混淆声明. 指定项目代码的混淆规则, 当代码开发完成后打成安装包文件, 如果不希望代码被别人破解, 通常会将代码混淆, 从而让破解者难以阅读.

2.1 res/ 目录中支持的资源目录

目录资源类型
animator/     用于定义属性动画的 XML 文件。
anim/     用于定义渐变动画的 XML 文件。(属性动画也可保存在此目录中,但为了区分这两种类型,属性动画首选 animator/ 目录。)
color/     用于定义颜色状态列表的 XML 文件。请参阅颜色状态列表资源
    drawable/         位图文件(.png、.9.png、.jpg、.gif)或编译为以下可绘制对象资源子类型的 XML 文件:
         位图文件
         九宫格(可调整大小的位图)
         状态列表
         形状
         动画可绘制对象
其他可绘制对象 请参阅 Drawable 资源
mipmap/     适用于不同启动器图标密度的可绘制对象文件。如需了解有关使用 mipmap/ 文件夹管理启动器图标的详细信息,请参阅管理项目概览
layout/用于定义用户界面布局的 XML 文件。请参阅布局资源
menu/     用于定义应用菜单(如选项菜单、上下文菜单或子菜单)的 XML 文件。请参阅菜单资源
raw/     需以原始形式保存的任意文件。如要使用原始 InputStream 打开这些资源,请使用资源 ID(即 R.raw.filename)调用 Resources.openRawResource()
     但是,如需访问原始文件名和文件层次结构,则可以考虑将某些资源保存在 assets/ 目录(而非 res/raw/)下。assets/ 中的文件没有资源 ID,因此您只能使用 AssetManager 读取这些文件。
values/     包含字符串、整型数和颜色等简单值的 XML 文件。
     其他 res/ 子目录中的 XML 资源文件会根据 XML 文件名定义单个资源,而 values/ 目录中的文件可描述多个资源。对于此目录中的文件,<resource\s> 元素的每个子元素均会定义一个资源。例如,<string> 元素会创建 R.string 资源,<color> 元素会创建 R.color 资源。
     由于每个资源均使用自己的 XML 元素进行定义,因此您可以随意命名文件,并在某个文件中放入不同的资源类型。但是,您可能需要将独特的资源类型放在不同的文件中,使其一目了然。例如,对于可在此目录中创建的资源,下面给出了相应的文件名约定:
          arrays.xml:资源数组(类型数组)。
          colors.xml:颜色值
          dimens.xml:尺寸值
          strings.xml:字符串值
          styles.xml:样式
请参阅字符串资源样式资源更多资源类型
xml/     可在运行时通过调用 Resources.getXML() 读取的任意 XML 文件。各种 XML 配置文件(如可搜索配置)都必须保存在此处。
font/     带有扩展名的字体文件(如 .ttf、.otf 或 .ttc),或包含 元素的 XML 文件。如需详细了解作为资源的字体,请参阅 XML 中的字体

参考链接:
[1]: https://blog.csdn.net/dujnan/article/details/44708769
[2]: https://blog.csdn.net/csj731742019/article/details/104748635?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.control
[3]: https://www.jianshu.com/p/c11862136abf
[4]: https://developer.android.google.cn/guide/topics/resources/providing-resources

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 项目基本结构包括以下几个部分: 1. AndroidManifest.xml 文件:这个文件是整个 Android 项目的配置文件,它包含了应用程序的基本信息,如应用程序的名称、版本号、图标等,还包含了应用程序的组件信息,如 Activity、Service、BroadcastReceiver、ContentProvider 等。 2. Java 源代码:Android 应用程序的核心代码是由 Java 语言编写的,它们通常存放在 src 目录下。 3. 资源文件:Android 应用程序的资源文件包括布局文件、图片、音频、视频等,它们通常存放在 res 目录下。 4. Assets 文件夹:这个文件夹存放的是应用程序需要使用的一些资源文件,如数据库文件、字体文件等。 5. libs 文件夹:这个文件夹存放的是应用程序需要使用的一些第三方库文件,如 jar 包、so 库等。 6. Gradle 脚本:Gradle 是 Android 应用程序的构建工具,它使用 Groovy 语言编写构建脚本,这些脚本通常存放在项目根目录下的 build.gradle 文件中。 以上就是 Android 项目基本结构。 ### 回答2: Android项目基本结构可以分为以下几个部分: 1. Manifest文件:Android项目基本配置文件,其中包含应用程序的清单信息,如包名、主要活动、权限等。 2. Java源代码:在Android项目中,主要使用Java语言开发应用程序逻辑。Java源代码包含在src文件夹中,可以根据需求创建不同的包和类来组织代码。 3. 资源文件:在res文件夹中,包含应用程序所需的各种资源文件,如布局文件、字符串文件、颜色文件、图片文件等。这些资源文件通过资源ID在代码中被引用,用于构建用户界面、定义应用程序的外观和行为。 4. 源码依赖库:在libs文件夹中,可以添加第三方开源库或其他工具类,以便在项目中使用。 5. 构建脚本文件:在项目的根目录中,包含用于构建和打包应用程序的Gradle构建脚本文件(build.gradle)或者Ant构建脚本文件(build.xml)。 6. 系统资源:Android框架提供了一系列系统资源,如系统图标、标准布局文件、主题样式等,这些资源在Android SDK中可以找到并导入到项目中。 7. 其他文件:还可能包含其他一些配置文件、测试文件、文档等。 这些组成部分共同构成了Android项目基本结构。通过合理的组织和管理这些文件,开发者可以更好地编写、构建和维护Android应用程序。 ### 回答3: Android项目基本结构是由一系列文件和文件夹组成的。在创建一个Android项目时,系统会自动生成一些核心文件和文件夹,这些文件和文件夹的作用和结构如下: 1. app文件夹:该文件夹是Android项目的主要文件夹,它包含了项目的源代码、资源文件、配置文件等。其中,主要包括以下文件和文件夹: - src文件夹:该文件夹用于存放项目的源代码,包括Java代码和XML布局文件等。 - res文件夹:该文件夹用于存放项目的资源文件,如图像、字符串、颜色等。其中,drawable文件夹用于存放图片资源,layout文件夹用于存放XML布局文件。 - AndroidManifest.xml文件:该文件是Android项目的配置文件,它包含了应用程序的基本信息和组件声明,如应用程序的包名、权限、启动活动等。 2. Gradle文件:Android项目使用Gradle构建工具来管理和构建项目。在项目的根目录下,会有一个build.gradle文件和一个settings.gradle文件。build.gradle文件用于配置项目的构建信息,如依赖库、打包格式等;settings.gradle文件用于配置项目的设置信息,如模块和库的引入等。 3. .idea文件夹:该文件夹是Android Studio创建项目时自动生成的,用于存储项目的一些配置信息,如版本控制、构建、运行等。 4. build文件夹:该文件夹用于存放项目打包的输出文件,如apk文件、临时文件等。在使用Gradle构建项目时,该文件夹会自动生成。 5. app.iml文件:该文件是项目的主要模块配置文件,它记录了项目的依赖库、资源路径等信息。在运行项目时,Android Studio会根据该文件的配置来编译和构建项目。 除了以上主要文件和文件夹外,Android项目还可能包括其他一些附属文件和文件夹,如测试代码文件夹(test文件夹)、应用图标文件夹(mipmap文件夹)等。总之,Android项目基本结构是一个按照约定的文件和文件夹的组合,它们协同工作来构建、编译和运行Android应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值