3.1、Android Studio 项目概览

文章摘要
1、 Android 模块的概念
2、Android 视图中,项目文件简介
3、项目视图,以及项目中文件介绍
4、项目结构Project Structure 简介
5、Modules 设定与配置依赖等


英文文献

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

一、模块

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

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

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

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

1.1、Android 应用模块

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

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

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

1.2、库模块

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

  • Android 库:这种类型的库可以包含 Android 项目中支持的所有文件类型,包括源代码、资源和清单文件。构建结果是一个 Android 归档 (AAR) 文件,您可以将其作为 Android 应用模块的依赖项添加。
  • Java 库:此类型的库只能包含 Java 源文件。构建结果是一个 Java 归档 (JAR) 文件,您可以将其作为 Andriod 应用模块或其他 Java 项目的依赖项添加。
1.3、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 视图下隐藏的所有文件),请从 Project 窗口顶部的下拉菜单中选择 Project。

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

├── app
│   ├── build   包含构建输出。
│   ├── libs    包含私有库。
│   └── src 包含模块的所有代码和资源文件,分为以下子目录:
│       ├── androidTest 包含在 Android 设备上运行的仪器测试的代码。
│       │   └── java
│       │       └── hailouwang
│       ├── main    包含“主”源集文件:所有构建变体共享的 Android 代码和资源(其他构建变体的文件位于同级目录中,例如调试构建类型的文件位于 src/debug/ 中)。
│       │   ├── AndroidManifest.xml 说明应用及其每个组件的性质。
│       │   ├── java    包含 Java 代码源。
│       │   │   └── hailouwang
│       │   ├── jni 包含使用 Java 原生接口 (JNI) 的原生代码。
│       │   ├── gen 包含 Android Studio 生成的 Java 文件,例如您的 R.java 文件以及从 AIDL 文件创建的接口。
│       │   ├── assets  
包含应原封不动地编译到 .apk 文件中的文件。您可以使用 URI 像浏览典型文件系统一样浏览此目录,以及使用 AssetManager以字节流形式读取文件。例如,此位置非常适合纹理和游戏数据。
│       │   └── res 包含应用资源,例如可绘制对象文件、布局文件和 UI 字符串。
│       └── test    包含在您的主机 JVM 上运行的本地测试的代码。
│           └── java
│               └── hailouwang
│                   └── demosforapi
│   ├── 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 构建
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容