此 Codelab 是“Android Kotlin 基础知识”课程的一部分。如果您按顺序学习这些 Codelab,您将会充分发掘此课程的价值。“Android Kotlin 基础知识”Codelab 着陆页列出了所有课程 Codelab。
简介
在此 Codelab 中,您将在模拟器和实体设备上创建并运行您的首个 Android 应用 HelloWorld。您还将了解 Android 项目的样貌。
您应当已掌握的内容
- 您应了解使用 Android Studio 等 IDE(集成开发环境)开发面向对象的应用的一般软件开发流程。
- 您应至少有一年面向对象编程经验,并且至少了解 Java 和 Kotlin。
学习内容
- 了解如何在 Android Studio 中构建基本的 Android 应用。
- 如何基于模板创建 Android 项目。
- 如何查找 Android 项目的主要组件。
- 了解如何在模拟器或实体设备上运行 Android 应用。
操作内容
- 创建一个新的 Android 项目和一个名为 HelloWorld 的默认应用。
- 创建模拟器(虚拟设备),以便在计算机上运行应用。
- 在虚拟设备和实体设备上运行 HelloWorld 应用。
- 探索项目布局。
- 探索
AndroidManifest.xml
文件。
HelloWorld 应用会在 Android 虚拟设备或实体设备的屏幕上显示字符串“Hello World”。该应用如下所示:
在此任务中,您将创建一个新的应用项目,以验证 Android Studio 是否已正确安装。
- 打开 Android Studio(如果尚未打开)。
- 在主 Welcome to Android Studio 对话框中,点击 Start a new Android Studio project。
- 系统会显示 选择项目 对话框。选择 Empty Activity(如下所示),然后点击 Next。
Activity
是用户可以执行的单个专注操作。每个应用都必须至少有一个 activity 作为其入口点。可以将此入口点 activity 视为其他程序中的main()
函数。activity 通常具有关联的布局,用于定义界面 (UI) 元素在屏幕上的显示方式。Android Studio 提供了多种Activity
模板,可帮助您轻松上手。 - 在 Configure your project 对话框中,输入“HelloWorld”作为名称。
- 接受公司网域的默认值 android.example.com,或创建唯一的公司网域。此值加上应用名称就是应用的软件包名称。如果您不打算发布应用,请接受默认值。您日后可以更改应用的软件包名称,但需要额外的工作。
- 确认默认的保存位置是您想要存储应用的位置。如果不是,请将位置更改为您首选的目录。
- 确保语言为 Kotlin。
- 确保最低 API 级别为 API 19:Android 4.4 (KitKat)。在编写此 Codelab 时,Android Studio 指出,如果使用此 API 级别,应用将可在约 95.3% 的设备上运行。
(您将在后续的 Codelab 中详细了解最低 API 级别。如需立即了解详情,请点击帮我选择,系统随即会打开一个窗口,其中包含有关 API 级别的信息。) - 选中 Use AndroidX artifacts 复选框。
- 将所有其他复选框保持未选中状态,然后点击完成。如果您的项目需要更多组件才能支持所选的目标 SDK,Android Studio 会自动安装这些组件,这可能需要一段时间。按照提示操作并接受默认选项。
Android Studio 现在将创建您的项目,这可能需要一些时间。您应该不会收到任何错误。如果收到任何警告,请忽略。
在此任务中,您将探索 Android Studio 中的 HelloWorld 项目,并学习使用 Android Studio 进行开发的基础知识。
第 1 1 步:探索“项目”窗格
- 如果尚未选择项目标签页,请选择该标签页。Project 标签页位于 Android Studio 窗口左侧的垂直标签页列中。系统会打开“项目”窗格。
- 如需将项目视为标准 Android 项目层次结构进行查看,请从“Project”窗格顶部的下拉菜单中选择 Android。(默认值为 Android)。您可以通过多种不同的方式查看项目文件,包括查看文件在文件系统层次结构中的显示方式。不过,使用 Android 视图可以更轻松地处理项目。
第 2 步:探索应用文件夹
应用的所有代码和资源都位于 app
文件夹中。
- 在 Project > Android 窗格中,展开 app 文件夹。
app
文件夹内有四个子文件夹:manifests
、java
、generatedJava
和res
。 - 展开 java 文件夹,然后展开 com.example.android.HelloWorld 文件夹,以查看 MainActivity Kotlin 文件。
java 文件夹包含 Android 应用的所有主要 Kotlin 代码。您的 Kotlin 代码之所以显示在 java 文件夹中,是有历史原因的。该惯例可让 Kotlin 与使用 Java 编程语言编写的代码(即使在同一项目和应用中)无缝互操作。
如上图所示,应用的类文件包含在三个子文件夹中。com.example.hello.helloworld(或您指定的域名)文件夹包含应用软件包的所有文件。具体来说,MainActivity
类是应用的主要入口点。您将在下一个 Codelab 中详细了解MainActivity
。java
文件夹中的另外两个文件夹用于与测试相关的代码,例如单元测试。
- 请注意 generatedJava 文件夹。此文件夹包含 Android Studio 在构建应用时生成的文件。请勿修改此文件夹中的任何内容,因为在重新构建应用时,您所做的更改可能会被覆盖。不过,如果您需要在调试期间查看这些文件,了解此文件夹会很有用。
第 3 步:探索 res 文件夹
- 在 Project > Android 窗格中,展开 res 文件夹。
res 文件夹包含资源。Android 中的资源是指应用中使用的静态内容。资源包括图片、文本字符串、屏幕布局、样式和值(例如十六进制颜色或标准尺寸)。
Android 应用会尽可能地将 Kotlin 代码和资源分开。这样一来,您就可以更轻松地找到应用界面中使用的所有字符串或图标。此外,当您更改其中一个资源文件时,相应更改会在应用中使用该文件的所有位置生效。 - 在 res 文件夹中,展开 layout 文件夹,即可看到
activity_main.xml
文件。
您的 Activity
通常与界面布局文件相关联,该文件在 res/layout
目录中定义为 XML 文件。该布局文件通常以其 activity 命名。在本例中,activity 名称为 MainActivity
,因此关联的布局为 activity_main
。
第 4 步:探索清单文件夹和 AndroidManifest.xml
manifests
文件夹包含向 Android 系统提供有关应用的基本信息的文件。
- 展开 manifests 文件夹,然后双击 AndroidManifest.xml 以将其打开。
AndroidManifest.xml
文件包含 Android 系统运行应用所需的详细信息,包括哪些 activity 是应用的一部分。 - 请注意,
MainActivity
在<activity>
元素中被引用。应用中的任何Activity
都必须在清单中声明。以下是MainActivity
的示例:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- 请注意
<activity>
内的<intent-filter>
元素。此 intent 过滤器中的<action>
和<category>
元素会告知 Android 在用户点击启动器图标时从何处启动应用。在后续的 Codelab 中,您将详细了解 intent 过滤器。
您还可以在 AndroidManifest.xml
文件中定义应用所需的任何权限。权限包括应用读取手机通讯录、通过互联网发送数据或访问硬件(例如设备摄像头)的能力。
Gradle 是一种构建自动化系统,该系统使用领域专用语言来描述应用的项目结构、配置和依赖项。在编译和运行应用时,您会看到关于 Gradle 构建运行的信息。您还会看到有关正在安装的 Android 应用包 (APK) 的信息。(APK 是指 Android 操作系统用来分发和安装移动应用的软件包文件格式。)
探索 Gradle 系统:
- 展开 Gradle Scripts 文件夹。在 Project > Android 窗格中,此文件夹包含构建系统所需的所有文件。
- 找到 build.gradle(Project: HelloWorld) 文件。
此文件包含构成项目的所有模块共有的配置选项。每个 Android Studio 项目都包含一个顶级 Gradle build 文件。此文件定义了项目中所有模块共用的 Gradle 代码库和依赖项。 - 找到 build.gradle(Module:app) 文件。
除了项目级build.gradle
文件之外,每个模块都有自己的build.gradle
文件。模块级build.gradle
文件可让您为每个模块配置 build 设置。(HelloWorld 应用只有一个模块,即应用本身的模块。)在更改应用级 build 配置时,您最常修改的就是此build.gradle
文件。例如,当您更改应用支持的 SDK 级别或在dependencies
部分中声明新的依赖项时,您会修改此build.gradle
文件。在后续 Codelab 中,您将详细了解这两方面的内容。
在此任务中,您将使用 Android 虚拟设备 (AVD) 管理器来创建虚拟设备(模拟器)。虚拟设备可以模拟特定类型的 Android 设备的配置。然后,您可以使用该虚拟设备运行应用。
Android 模拟器是一个独立的应用,有自己的系统要求。虚拟设备可能会占用大量磁盘空间。如果您遇到任何问题,请参阅在 Android 模拟器上运行应用。
第 1 步:创建 Android 虚拟设备 (AVD)
如要在计算机上运行模拟器,您必须创建描述虚拟设备的配置。
- 在 Android Studio 中,依次选择 Tools > AVD Manager,或点击工具栏中的 AVD Manager 图标
。系统随即会显示 Your Virtual Devices 对话框。如果您已创建虚拟设备,对话框会显示这些设备(如下图所示);否则,您会看到一个空白列表。
- 点击对话框左下角的 +Create Virtual Device。系统会显示 Select Hardware 对话框,其中列出了一系列预配置的硬件设备。对于每种设备,该表都提供了 Size 列(提供对角线显示屏尺寸信息)、Resolution 列(提供以像素为单位的屏幕分辨率信息)和 Density 列(提供像素密度信息)。
- 选择一个设备(例如 Nexus 5x 或 Pixel XL),然后点击 Next。系统随即会显示 System Image 对话框。
- 点击 Recommended 标签页,然后选择要在虚拟设备上运行的 Android 系统版本(例如 Pie)。
- 选择系统映像后,点击 Next。系统随即会打开 Android Virtual Device (AVD) 对话框。检查配置,然后点击完成。
第 2 步:在虚拟设备上运行应用
在此任务中,您将最终运行新应用。
- 在 Android Studio 中,依次选择 Run > Run app,或点击工具栏中的 Run 图标 [ICON HERE]。[IMAGEINFO]:ic_run.png,Android Studio 的“Run”图标" style="width: 24.00px" src="img/6c65750f2ce7f651.png"> 。系统随即会显示 Select Deployment Target 对话框,并警告您没有可用的设备。如果您未将实体设备连接到开发计算机,或者尚未启动虚拟设备,则会看到此警告。
- 在 Select Deployment Target 对话框中,选择 Available Virtual Devices 下您创建的虚拟设备。点击确定。
模拟器的启动过程和实体设备一样。此过程可能需要一段时间,具体取决于您的计算机的速度。应用会进行 build,当模拟器准备就绪后,Android Studio 会将应用 APK 上传到模拟器并运行。
您应该会看到 HelloWorld 应用,如下图所示。
在此任务中,您将在实体移动设备(例如手机或平板电脑)上运行应用(如果有)。请务必在虚拟设备和实体设备上测试您的应用。
所需条件:
- Android 设备,例如手机或平板电脑。
- 一根用于通过 USB 端口将 Android 设备连接到计算机的 USB 数据线。
- 如果您使用的是 Linux 或 Windows 系统,可能需要执行额外的步骤。请参阅在硬件设备上运行应用文档。您可能还需要为设备安装合适的 USB 驱动程序。对于基于 Windows 的 USB 驱动程序,请参阅安装 OEM USB 驱动程序。
第 1 步:开启 USB 调试功能
如要让 Android Studio 与您的 Android 设备通信,您必须在设备的开发者选项设置中启用 USB 调试功能。
在搭载 Android 4.2 (Jellybean) 及更高版本的设备上,开发者选项设置默认处于隐藏状态。如需显示开发者选项并启用 USB 调试功能,请按以下步骤操作:
- 在设备上,打开设置,搜索关于手机,点按关于手机,然后点按版本号七次。
- 返回到上一个页面(设置 / 系统)。开发者选项会显示在列表中。点按开发者选项。
- 选择 USB 调试。
第 2 步:在 Android 设备上运行应用
现在,您可以连接设备并从 Android Studio 运行应用。
- 使用 USB 线将 Android 设备连接到开发机器。设备上应会显示一个对话框,要求您允许进行 USB 调试。
- 选中一律允许选项以记住这台计算机。点按确定。
- 在计算机的 Android Studio 工具栏中,点击 Run按钮
。系统随即会打开 Select Deployment Target 对话框,其中列出了可用的模拟器和已连接的设备。您应该能在其中看到您的实体设备以及所有模拟器。
- 选择您的设备,然后点击 OK。Android Studio 会在设备上安装并运行该应用。
问题排查
如果 Android Studio 无法识别您的设备,请尝试以下操作:
- 拔掉 USB 线,然后再重新插上。
- 重启 Android Studio。
如果您的计算机仍找不到设备或声明设备“未经授权”,请按以下步骤操作:
- 拔掉 USB 线。
- 在设备的设置应用中打开开发者选项。
- 点按撤消 USB 调试授权。
- 将设备重新连接到计算机。
- 当系统提示时,授予 USB 调试授权。
您可能需要为设备安装合适的 USB 驱动程序。请参阅在硬件设备上运行应用。
挑战: 现在,您已完成设置并熟悉了基本开发工作流程,请执行以下操作:
- 在 Android Studio 中创建新项目。
- 将“Hello World”问候语更改为“Happy Birthday to ”,并在后面添加最近过生日的人的名字。
- 如需安装 Android Studio,请前往 Android Studio,然后按照说明下载并安装。
- 如需在“Project”窗格中查看应用的 Android 层次结构,请点击垂直标签页列中的 Project 标签页。然后,在顶部的下拉菜单中选择 Android。
- 当您需要向项目添加新依赖项或更改依赖项版本时,请修改
build.gradle(Module:app)
文件。 - 应用的所有代码和资源都位于
app
和res
文件夹中。java
文件夹包含 Kotlin 或 Java 源代码(或两者)中的 activity、测试和其他组件。res
文件夹用于保存布局、字符串和图片等资源。 - 如需向 Android 应用添加功能、组件和权限,请修改
AndroidManifest.xml
文件。所有应用组件(例如其他 activity)都必须在此 XML 文件中声明。 - 如要创建 Android 虚拟设备(模拟器)来运行应用,请使用 AVD 管理器。
- 如需使用 Android Studio 在实体 Android 设备上运行应用,请在该设备上启用 USB 调试。为此,请依次打开设置 > 关于手机,然后点按版本号七次。然后,依次打开设置 > 开发者选项,并选择 USB 调试。
Udacity 课程:
Android Studio 文档:
其他:
此部分列出了在由讲师主导的课程中,学生学习此 Codelab 后可能需要完成的家庭作业。讲师自行决定是否执行以下操作:
- 根据需要布置作业。
- 告知学生如何提交家庭作业。
- 给家庭作业评分。
讲师可以酌情采纳这些建议,并且可以自由布置自己认为合适的任何其他家庭作业。
如果您是在自学此 Codelab,可随时通过这些家庭作业来检测您的知识掌握情况。
构建并运行应用
- 基于“空”模板创建一个新的 Android 项目。
- 打开
res/strings.xml
文件。 - 将
app_name
字符串的值更改为“My Dice Roller”。此名称会显示在标题栏中。 - 为设备创建模拟器,以您喜欢的任何 Android 版本为目标平台,然后运行应用。请注意应用的标题发生了变化。
回答以下问题
问题 1
主 activity 的布局文件的名称是什么?
MainActivity.java
AndroidManifest.xml
activity_main.xml
build.gradle
问题 2
指定应用名称的字符串资源的名称是什么?
app_name
xmlns:app
android:name
applicationId
问题 3
您使用哪个工具来创建新模拟器?
- Android Device Monitor
- AVD 管理器
- SDK 管理器
- 主题背景编辑器
提交应用以进行评分
检查以确保应用具有以下内容:
- 一个在屏幕上显示“Hello World”的
Activity
。 - 显示“My Dice Roller”的标题栏。
开始学习下一课:
如需本课程中其他 Codelab 的链接,请参阅“Android Kotlin 基础知识”Codelab 着陆页。