Android Studio 中的项目包含定义您的应用工作空间的一切内容,从源代码和资源到测试代码和构建配置。
当您启动新项目时,Android Studio 会为您所有文件创建必要的结构,并在 Android Studio 的 Project 窗口中显示这些文件。要打开该窗口,请选择 View > Tool Windows > Project。
本页概述了项目中的关键组件。
模块
模块是源代码文件和构建设置的集合,可让您将项目划分为离散的功能单元。您的项目可以有一个或多个模块,并且一个模块可以使用另一个模块作为依赖项。您可以独立地构建、测试和调试每个模块。请注意,在 Gradle 文档中,模块可能会被称为“项目”或“子项目”。
创建您自己的项目中的代码库,或者为不同设备类型(例如手机和可穿戴设备)创建不同的代码和资源集,同时将所有文件限定在同一项目范围内并共享部分代码时,额外的模块会非常有用。
要向项目中添加新模块,请依次点击 File > New > New Module。
Android Studio 提供了几种不同的模块类型
- Android 应用模块
提供一个容器,用于存放您的应用源代码、资源文件和应用级设置,例如模块级构建文件和 Android Manifest 文件。创建新项目时,默认的应用模块名为“app”。
Android Studio 提供以下类型的应用模块
- 手机与平板电脑
- 车载设备
- Wear OS
- 电视
每个模块都提供了适用于相应应用或设备类型的必要文件和一些代码模板。
如需详细了解如何添加模块,请参阅为新设备添加模块。
- Feature 模块
- 表示应用的一个模块化功能,可以利用 Play 功能交付。例如,借助 feature 模块,您可以通过 Google Play Instant 按需或以即时体验的形式向用户提供应用的某些功能。
Android Studio 提供以下类型的 feature 模块
- Dynamic Feature Module
- Instant Dynamic Feature Library Module
要了解详情,请参阅有关 Play 功能交付的内容。
- 库模块
提供一个用于存放可重用代码的容器,您可以将其用作其他应用模块的依赖项或导入到其他项目中。从结构上来说,库模块与应用模块相同,但构建时会创建一个代码归档文件而非 APK,因此无法安装到设备上。
在 Create New Module 窗口中,Android Studio 提供以下类型的库模块
- Android Library:包含 Android 项目中支持的所有文件类型(原生 C++ 代码除外),包括 Java 和 Kotlin 源代码、资源和 manifest 文件。构建结果是一个 Android Archive (AAR) 文件,您可以将其添加为 Android 应用模块的依赖项。
- Android Native Library:包含 Android 项目中支持的所有文件类型,类似于 Android Library。然而,Android Native Libraries 也可以包含原生 C++ 源代码。构建结果是一个 Android Archive (AAR) 文件,您可以将其添加为 Android 应用模块的依赖项。
- Java 或 Kotlin 库:仅包含 Kotlin 或 Java 源代码文件。构建结果是一个 Java Archive (JAR) 文件,您可以将其添加为 Android 应用模块或其他 Kotlin 或 Java 项目的依赖项。
- Benchmark > Microbenchmark:包含定期衡量代码性能并输出基准测试结果所需的文件。Microbenchmark 模块对于衡量重复使用的小段代码的性能特别有帮助。如需了解详情,请参阅关于 Microbenchmark。
创建库模块并想将其添加为 Android 应用模块的依赖项时,您必须按如下方式声明它
Groovy
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
- 测试模块
将您的测试与代码的其余部分分开。您可以配置测试模块以针对特定的构建变体。
Android Studio 提供以下类型的测试模块
- Baseline Profile Generator:Baseline Profiles 可使用户交互(例如导航和滚动)在首次运行时更加流畅。为您的关键用户历程创建 Baseline Profiles,以提升应用性能和用户体验。
- Benchmark > Macrobenchmark:包含定期衡量代码性能并输出基准测试结果所需的文件。Macrobenchmark 模块对于衡量应用更大规模的用例(例如列表滚动或其他界面操作)的性能特别有帮助。如需了解详情,请参阅编写 Macrobenchmark。
项目文件

默认情况下,Android Studio 在 Android 视图中显示您的项目文件。此视图不反映磁盘上的实际文件层级结构。相反,它按模块和文件类型组织,以简化在项目关键源文件之间的导航,隐藏某些不常用文件或目录。
Android 视图与磁盘上结构的一些结构性差异包括,Android 视图
- 在顶级 Gradle Script 组中显示项目的所有与构建相关的配置文件。
- 当您为不同的产品变种和构建类型提供不同的 manifest 文件时,会在模块级组中显示每个模块的所有 manifest 文件。
- 在单个组中显示所有备用资源文件,而不是按照每个资源限定符分成单独的文件夹。例如,启动器图标的所有密度版本都并排可见。
在每个 Android 应用模块中,文件显示在以下组中
- manifests
- 包含
AndroidManifest.xml
文件。 - java
- 包含 Kotlin 和 Java 源代码文件,按软件包名称分开,包括 JUnit 测试代码。
- res
- 包含所有非代码资源,例如界面字符串和位图图片,并划分到相应的子目录中。如需了解可能的资源类型的详细信息,请参阅应用资源概览。
Project 视图

要查看项目的实际文件结构(包括在 Android 视图中隐藏的所有文件),请从 Project 窗口顶部的菜单中选择 Project。
选择 Project 视图后,您会看到更多文件和目录,其中包括
module-name/
-
build/
- 包含构建输出。
libs/
- 包含私有库。
src/
- 在以下子目录中包含模块的所有代码和资源文件
androidTest/
- 包含在 Android 设备上运行的 instrumentation 测试代码。如需了解详情,请参阅在 Android Studio 中测试。
cpp/
- 包含使用 Java Native Interface (JNI) 的原生 C 或 C++ 代码。如需了解详情,请参阅Android NDK 文档。
main/
- 包含“main”源集文件:所有构建变体共享的 Android 代码和资源(其他构建变体的文件位于同级目录中,例如用于 debug 构建类型的 src/debug/)
AndroidManifest.xml
- 描述应用的性质及其每个组件。如需了解详情,请参阅应用 manifest 概览。
java/
- 包含 Kotlin 或 Java 源代码,如果您的应用同时包含 Kotlin 和 Java 源代码,则两者都包含。
kotlin/
- 仅包含 Kotlin 源代码。
res/
- 包含应用资源,例如 drawable 文件和界面字符串文件。如需了解详情,请参阅应用资源概览。
assets/
- 包含将按原样编译到 APK 文件中的文件。例如,这是存放纹理和游戏数据的好位置。您可以使用 URI 以与典型文件系统相同的方式导航此目录,并使用
AssetManager
以字节流的形式读取文件。
test/
- 包含在您的主机 JVM 上运行的本地测试代码。
build.gradle
或build.gradle.kts
(模块)- 这定义了模块特有的构建配置。
build.gradle
是使用 Groovy 作为构建脚本语言时的正确文件名,而build.gradle.kts
是使用 Kotlin 脚本时的正确文件名。
build.gradle
或build.gradle.kts
(项目)- 这定义了适用于所有模块的构建配置。
build.gradle
是使用 Groovy 作为构建脚本语言时的正确文件名,而build.gradle.kts
是使用 Kotlin 脚本时的正确文件名。此文件是项目不可或缺的一部分,因此请与其他所有源代码一起在修订版本控制中维护它。如需了解其他构建文件的信息,请参阅配置您的构建。
项目结构设置
要更改 Android Studio 项目的各种设置,请依次点击 File > Project Structure 打开 Project Structure 对话框。它包含以下几个部分
- Project:设置 Gradle 和 Android Gradle 插件的版本以及仓库位置名称。
- SDK 位置:设置您的项目使用的 JDK、Android SDK 和 Android NDK 的位置。
- 变量:允许您编辑构建脚本中使用的变量。
-
模块:允许您编辑模块特有的构建配置,包括目标和最低 SDK、应用签名以及库依赖项。每个模块的设置页面分为以下几个标签页
- 属性:指定用于编译模块的 SDK 和构建工具版本。
- 签名:指定用于签署应用的证书。
-
依赖项:列出此模块的库、文件和模块依赖项。您可以从此窗格添加、修改和删除依赖项。如需详细了解模块依赖项,请参阅配置构建变体。
-
构建变体:允许您为项目配置不同的变种和构建类型。