项目概览

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

模块

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

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

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

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

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

Create New Module 窗口中,Android Studio 提供了以下应用模块:

  • Phone & Tablet Module
  • Android Wear Module
  • Android TV Module
  • Glass Module

每种模块都提供了基础文件和一些代码模板,非常适合对应的应用或设备类型。

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

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

Create New Module 窗口中,Android Studio 提供了以下库模块:

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

利用 Android Studio 创建和开发您的 Google Cloud 模块,您可以在同一个项目中管理应用代码和后端代码。您也可以在本地运行和测试后端代码,并使用 Android Studio 部署 Google Cloud 模块。

如需了解有关添加 Google Cloud 模块的详细信息,请参阅添加 App 引擎 Java Servlet 模块。如需了解有关运行和部署 Google Cloud 模块的详细信息,请参阅运行、测试和部署后端

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

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

项目文件

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

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

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

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

Android 项目视图

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

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

模块名称/
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 的版本,以及存储区位置名称。
  • Developer Services:包含 Google 或其他第三方的 Android Studio 附加组件的设置。请参阅下面的 Developer Services
  • Modules:允许您编辑模块特定的构建配置,包括目标和最低 SDK、应用签名和库依赖项。请参阅下面的 Modules

Developer Services

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

  • AdMob:允许您启用 Google 的 AdMob 组件,此组件可以帮助您了解用户,并向他们显示量身定制的广告。
  • Analytics:允许您启用 Google Analytics(分析),此组件可以帮助您衡量用户在各种设备和环境中与您应用的互动。
  • Authentication:允许用户通过 Google Sign-In 服务使用其 Google 帐号登录您的应用。
  • Cloud:允许您为应用开启基于云的 Firebase 服务。
  • Notifications:允许您使用 Google Cloud Messaging 在您的应用与服务器之间通信。

开启这些服务中的任何一项都可能使 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 构建