项目概览

Android Studio 中的项目包含定义应用工作区的所有内容,从源代码和资源到测试代码和构建配置。

启动新项目时,Android Studio 会为所有文件创建必要的结构,并在 Android Studio 的**项目**窗口中显示它们。要打开窗口,请选择**查看 > 工具窗口 > 项目**。

此页面提供了项目内部关键组件的概述。

模块

模块是源文件和构建设置的集合,可让您将项目划分为独立的功能单元。您的项目可以包含一个或多个模块,并且一个模块可以使用另一个模块作为依赖项。您可以独立构建、测试和调试每个模块。

在您自己的项目中创建代码库时,或者当您想要为不同类型的设备(例如手机和可穿戴设备)创建不同的代码和资源集时,其他模块非常有用,但请将所有文件都限定在同一个项目范围内并共享一些代码。

要向您的项目添加新模块,请点击文件 > 新建 > 新建模块

Android Studio 提供了几种不同的模块类型

Android 应用模块
为您的应用的源代码、资源文件和应用级设置(例如模块级构建文件和 Android 清单文件)提供容器。创建新项目时,默认应用模块名为“app”。

Android Studio 提供以下类型的应用模块

  • 手机和平板电脑
  • 汽车
  • Wear OS
  • 电视
  • 基线配置文件生成器
  • 基准测试

每个模块都提供基本文件和一些适合相应应用或设备类型的代码模板。

有关添加模块的更多信息,请阅读添加新设备的模块

功能模块
表示应用的模块化功能,可以利用Play 功能交付。例如,使用功能模块,您可以根据需要或通过Google Play 即时体验为用户提供应用的某些功能。

Android Studio 提供以下类型的功能模块

  • 动态功能模块
  • 即时动态功能库模块

要了解详情,请阅读有关Play 功能交付的内容。

库模块
为可重用代码提供容器,您可以将其用作其他应用模块中的依赖项或导入到其他项目中。在结构上,库模块与应用模块相同,但在构建时,它会创建代码归档文件而不是 APK 文件,因此无法安装在设备上。

创建新模块窗口中,Android Studio 提供以下类型的库模块

  • Android 库:包含 Android 项目中支持的所有文件类型,但原生 C++ 代码除外,包括 Java 和 Kotlin 源代码、资源和清单文件。构建结果为 Android 归档 (AAR) 文件,您可以将其添加为 Android 应用模块的依赖项。
  • Android 原生库:包含 Android 项目中支持的所有文件类型,类似于 Android 库。但是,Android 原生库还可以包含原生 C++ 源代码。构建结果为 Android 归档 (AAR) 文件,您可以将其添加为 Android 应用模块的依赖项。
  • Java 或 Kotlin 库:仅包含 Kotlin 或 Java 源文件。构建结果为 Java 归档 (JAR) 文件,您可以将其添加为 Android 应用模块或其他 Kotlin 或 Java 项目的依赖项。

模块有时被称为子项目,因为 Gradle 也将模块称为项目。

创建库模块并将其作为依赖项添加到 Android 应用模块时,必须按以下方式声明它

Groovy

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

项目文件

默认情况下,Android Studio 在Android视图中显示项目文件。此视图不反映磁盘上的实际文件层次结构。相反,它按模块和文件类型进行组织,以简化项目关键源文件之间的导航,隐藏某些不常用文件或目录。

Android视图与磁盘上的结构之间的一些结构差异在于,Android视图

  • 在顶级Gradle 脚本组中显示所有项目的构建相关配置文件。
  • 当您为不同的产品变体和构建类型具有不同的清单文件时,在模块级组中显示每个模块的所有清单文件。
  • 将所有替代资源文件显示在一个组中,而不是在每个资源限定符的单独文件夹中。例如,启动器图标的所有密度版本并排可见。

在每个 Android 应用模块中,文件按以下组显示

清单
包含AndroidManifest.xml文件。
java
包含 Kotlin 和 Java 源代码文件,按包名称分隔,包括 JUnit 测试代码。
res
包含所有非代码资源,例如 UI 字符串和位图图像,并将其划分为相应的子目录。有关可能的资源类型的更多信息,请参阅应用资源概览

项目视图

要查看项目的实际文件结构(包括从Android视图中隐藏的所有文件),请从项目窗口顶部的菜单中选择项目

选择项目视图后,您可以看到更多文件和目录,包括以下内容

模块名称/
build/
包含构建输出。
libs/
包含私有库。
src/
在以下子目录中包含模块的所有代码和资源文件
androidTest/
包含在 Android 设备上运行的检测测试的代码。有关更多信息,请参阅在 Android Studio 中进行测试
cpp/
使用 Java 本地接口 (JNI) 包含原生 C 或 C++ 代码。有关更多信息,请参阅Android NDK 文档
main/
包含“主”源集文件:所有构建变体共享的 Android 代码和资源(其他构建变体的文件位于同级目录中,例如src/debug/用于调试构建类型)
AndroidManifest.xml
描述应用程序及其每个组件的性质。有关更多信息,请参阅应用清单概览。
java/
包含 Kotlin 或 Java 代码源,如果您的应用同时具有 Kotlin 和 Java 源代码,则两者都包含。
kotlin/
仅包含 Kotlin 代码源。
res/
包含应用程序资源,例如可绘制文件和 UI 字符串文件。有关更多信息,请参阅应用资源概览。
assets/
包含要原样编译到 APK 文件中的文件。例如,这是纹理和游戏数据的好位置。您可以像使用典型文件系统一样导航此目录,使用 URI 并使用AssetManager将文件读取为字节流。
test/
包含在主机 JVM 上运行的本地测试的代码。
build.gradlebuild.gradle.kts(模块)
这定义了模块特定的构建配置。build.gradle是正确的文件名,如果您使用 Groovy 作为构建脚本语言,则为build.gradle.kts,如果您使用 Kotlin 脚本。
build.gradlebuild.gradle.kts(项目)
这定义了适用于所有模块的构建配置。build.gradle是正确的文件名,如果您使用 Groovy 作为构建脚本语言,则为build.gradle.kts,如果您使用 Kotlin 脚本。此文件对项目至关重要,因此请将其与所有其他源代码一起保存在版本控制中。

有关其他构建文件的信息,请参阅配置构建

项目结构设置

要更改 Android Studio 项目的各种设置,请通过点击文件 > 项目结构打开项目结构对话框。它包含以下部分

  • 项目:设置Gradle 和 Android Gradle 插件的版本以及存储库位置名称。
  • SDK 位置:设置项目使用的 JDK、Android SDK 和 Android NDK 的位置。
  • 变量:允许您编辑构建脚本中使用的变量。
  • 模块:允许您编辑模块特定的构建配置,包括目标和最低 SDK、应用签名和库依赖项。每个模块的设置页面都分为以下选项卡
    • 属性:指定用于编译模块的 SDK 和构建工具的版本。
    • 签名:指定用于签署应用的证书。
  • 依赖项:列出此模块的库、文件和模块依赖项。您可以从此窗格中添加、修改和删除依赖项。有关模块依赖项的更多信息,请参阅配置构建变体

  • 构建变体:允许您为项目配置不同的风格和构建类型。

    • 风格:允许您创建多个构建风格,其中每个风格指定一组配置设置,例如模块的最低和目标 SDK 版本以及版本代码和版本名称

      例如,您可以定义一个最低 SDK 为 21 且目标 SDK 为 29 的风格,以及另一个最低 SDK 为 24 且目标 SDK 为 33 的风格。

    • 构建类型:允许您创建和修改构建配置,如配置构建变体中所述。默认情况下,每个模块都具有调试发布构建类型,您可以根据需要定义更多构建类型。