项目概览
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 应用模块时,您必须按如下所示进行声明:
- 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 视图后,您会看到更多文件和目录。最重要的一些文件和目录如下所示:
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 构建。