项目概览

Android Studio 中的一个项目包含您为应用定义工作区所需的一切内容,从源代码和资源到测试代码和构建配置,应有尽有。当您启动新项目时,Android Studio 会为您的所有文件创建所需结构,然后使其在 IDE 左侧的 Project 窗口中可见(点击 View > Tool Windows > Project)。本页面将概括介绍您的项目内的主要组件。

模块

模块是源文件和构建设置的集合,允许您将项目分成不同的功能单元。您的项目可以包含一个或多个模块,并且一个模块可以将其他模块用作依赖项。每个模块都可以独立构建、测试和调试。

如果在自己的项目中创建代码库或者希望为不同的设备类型(例如电话和穿戴式设备)创建不同的代码和资源组,但保留相同项目内的所有文件并共享某些代码,那么增加模块数量将非常有用。

您可以点击 File > New > New Module,向您的项目中添加新模块。

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

  • Android 应用模块
  • 为应用的源代码、资源文件和应用级设置(例如模块级构建文件和 Android Manifest 文件)提供容器。在您创建新项目时,默认的模块名称将是“app”。
    Create New Module 窗口中,Android Studio 提供了以下应用模块:

    • Phone & Tablet Module
    • Wear OS Module
    • Android TV Module
    • Glass Module
      每种模块都提供了基础文件和一些代码模板,非常适合对应的应用或设备类型。

如需了解有关添加模块的详细信息,请阅读为新设备添加模块

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

    • Android 库:这种类型的库可以包含 Android 项目中支持的所有文件类型,包括源代码、资源和清单文件。构建结果是一个 Android 归档 (AAR) 文件,您可以将其作为 Android 应用模块的依赖项添加。
    • Java 库:此类型的库只能包含 Java 源文件。构建结果是一个 Java 归档 (JAR) 文件,您可以将其作为 Andriod 应用模块或其他 Java 项目的依赖项添加。
  • Google 云模块
  • 为您的 Google Cloud 后端代码提供容器。此模块具有使用简单 HTTP、Cloud Endpoints 和云消息传递连接到您的应用的 Java App Engine 后端所需的代码和依赖项。您可以开发您的后端,提供应用所需的云服务。
    利用 Android Studio 开发您的 Google 云模块,您可以在同一个项目中管理应用代码和后端代码。您也可以在本地运行和测试后端代码,并使用 Android Studio 部署 Google 云模块。

如需了解有关运行和部署 Google 云模块的详细信息,请参阅运行、测试和部署后端

一些人也将模块称为子项目,完全没有问题,因为 Gradle 也将模块称为项目。例如,在创建库模块并且希望以依赖项的形式将其添加到您的 Android 应用模块时,您必须按如下所示进行声明:

  1. dependencies {
  2. compile project(':my-library-module')
  3. }

项目文件

项目管理 - Manage your project - 图1
默认情况下,Android Studio 会在 Android 视图中显示您的项目文件。此视图无法反映磁盘上的实际文件层次结构,而是按模块和文件类型组织,简化项目主要源文件之间的导航,同时将不常用的特定文件或目录隐藏。与磁盘上的结构相比,一些结构变化包括:

  • 在顶级 Gradle Script 组中显示项目中与构建相关的所有配置文件。
  • 在模块级组(如果您为不同的产品风格和构建类型使用不同的清单文件)中显示每个模块的所有清单文件。
  • 在一个组中显示所有备用资源文件,而不是按照资源限定符在不同的文件夹中显示。例如,所有密度版本的启动器图标将并排显示。
    在每个 Android 应用模块内,文件显示在以下组中:

  • manifests

  • 包含 AndroidManifest.xml 文件。
  • java
  • 包含 Java 源代码文件(包括 JUnit 测试代码),这些文件按软件包名称分隔。
  • res
  • 包含所有非代码资源,例如 XML 布局、UI 字符串和位图图像,这些资源将分成对应的子目录。如需了解有关所有可能的资源类型的详细信息,请参阅提供资源

Android 项目视图

项目管理 - Manage your project - 图2
要查看项目的实际文件结构(包括 Android 视图下隐藏的所有文件),请从 Project 窗口顶部的下拉菜单中选择 Project

选择 Project 视图后,您会看到更多文件和目录。最重要的一些文件和目录如下所示:

  • module-name/
    • build/
    • 包含构建输出。
    • libs/
    • 包含私有库。
    • src/
    • 包含模块的所有代码和资源文件,分为以下子目录:
      • androidTest/
      • 包含在 Android 设备上运行的仪器测试的代码。如需了解详细信息,请参阅 Android 测试文档
      • main/
      • 包含“主”源集文件:所有构建不同类型共享的 Android 代码和资源(其他构建不同类型的文件位于同级目录中,例如调试构建类型的文件位于 src/debug/ 中)。
        • AndroidManifest.xml
        • 说明应用及其每个组件的性质。如需了解详细信息,请参阅 AndroidManifest.xml 文档。
        • java/
        • 包含 Java 代码源。
        • jni/
        • 包含使用 Java 原生接口 (JNI) 的原生代码。如需了解详细信息,请参阅 Android NDK 文档
        • gen/
        • 包含 Android Studio 生成的 Java 文件,例如您的 R.java 文件以及从 AIDL 文件创建的接口。
        • res/
        • 包含应用资源,例如可绘制对象文件、布局文件和 UI 字符串。如需了解详细信息,请参阅应用资源
        • assets/
        • 包含应原封不动地编译到 .apk 文件中的文件。您可以使用 URI 像浏览典型文件系统一样浏览此目录,以及使用 AssetManager
          以字节流形式读取文件。例如,此位置非常适合纹理和游戏数据。
      • test/
      • 包含在您的主机 JVM 上运行的本地测试的代码。
    • build.gradle(模块)
    • 定义模块特定的构建配置。
  • build.gradle(项目)
  • 定义适用于所有模块的构建配置。此文件已集成到项目中,因此您应当在所有其他源代码的修订控制中保留这个文件。
    如需了解有关其他构建文件的信息,请参阅配置构建

项目结构设置

要更改 Android Studio 项目的各种设置,请点击 File > Project Structure,打开 Project Structure 对话框。此对话框包含以下部分:

  • SDK Location:设置您的项目使用的 JDK、Android SDK 和 Android NDK 的位置。
  • Project:设置 Gradle 和 Android Plugin for Gradle 的版本,以及存储区位置名称。
  • 开发者服务:包含 Google 或其他第三方的 Android Studio 附加组件的设置。请参阅下面的开发者服务
  • Modules:允许您编辑模块特定的构建配置,包括目标和最低 SDK、应用签名和库依赖项。请参阅下面的 Modules

开发者服务

Project Structure 对话框的开发者服务部分包含可为应用使用的多种服务的配置页面。本部分包含以下页面:

  • Google AdMob:允许您启用 Google 的 Google AdMob 组件,此组件可以帮助您了解用户,并向其显示量身定制的广告。
  • Analytics:允许您启用 Google Analytics(分析),此组件可以帮助您衡量用户在各种设备和环境中与您应用的互动。
  • Authentication:允许用户通过 Google Sign-In 服务使用其 Google 帐号登录您的应用。
  • Cloud:允许您为应用开启基于云的 Firebase 服务。
  • Notifications:允许您使用 Google 云消息传递在您的应用与服务器之间通信。
    开启这些服务中的任何一项都可能使 Android Studio 向您的应用中添加所需依赖项和权限。如果您启用相关服务,每个配置页面都会列出 Android Studio 进行的以上操作及其他操作。

Modules

借助 Modules 设置部分,您可以为项目的每个模块更改配置选项。每个模块的配置页面分成以下标签:

  • Properties:指定编译模块所用的 SDK 和构建工具的版本。
  • Signing:指定用于签署您的 APK 的证书。
  • Flavors:允许您创建多个构建风格,其中每个风格指定一组配置设置,例如模块的最低和目标 SDK 版本,以及版本代码和版本名称。例如,您可以定义一个最低 SDK 为 15、目标 SDK 为 21 的风格,以及另一个最低 SDK 为 19、目标 SDK 为 23 的风格。
  • Build Types:允许您创建和修改构建配置,如配置 Gradle 构建中所述。默认情况下,每个模块都有调试发布构建类型,不过您可以根据需要定义更多类型。
  • Dependencies:列出此模块的库、文件和模块依赖项。您可以通过此窗格添加、修改和删除依赖项。如需了解有关模块依赖项的详细信息,请参阅配置 Gradle 构建