此 Codelab 是“Android Kotlin 基础知识”课程的一部分。如果您按顺序学习这些 Codelab,您将会充分发掘此课程的价值。“Android Kotlin 基础知识”Codelab 着陆页列出了所有课程 Codelab。
简介
在此 Codelab 中,您将在模拟器和实体设备上创建并运行您的首个 Android 应用 HelloWorld。此外,您还将探索 Android 项目。
您应当已掌握的内容
- 您应了解使用 Android Studio(例如集成式开发环境)等面向对象的应用的常规软件开发流程。
- 您应至少拥有 1 年面向对象的编程经验,并且至少了解 Java 和 Kotlin。
学习内容
- 如何在 Android Studio 中构建基本的 Android 应用。
- 如何通过模板创建 Android 项目。
- 如何查找 Android 项目的主要组件。
- 如何在模拟器或实体设备上运行 Android 应用。
您应执行的操作
- 创建一个新的 Android 项目和一个名为 HelloWorld 的默认应用。
- 创建模拟器(虚拟设备),以便在计算机上运行应用。
- 在虚拟和实体设备上运行 HelloWorld 应用。
- 探索项目布局。
- 浏览
AndroidManifest.xml
文件。
HelloWorld 应用会在 Android 虚拟设备或实体设备屏幕上显示字符串“Hello World”。该应用如下所示:
在此任务中,您将创建一个新的应用项目,以验证 Android Studio 是否已正确安装。
- 打开 Android Studio(如果尚未打开)。
- 在欢迎使用 Android Studio 主对话框中,点击 Start a new Android Studio project。
- 此时将显示 Choose your project 对话框。如下所示,选择 Empty Activity,然后点击 Next。
Activity
是一种用户可以聚焦的单一操作。每个应用必须至少有一个 Activity 作为入口点。将此入口点 Activity 视为其他程序中的main()
函数。Activity 通常具有与之关联的布局,用于定义界面元素 (UI) 在屏幕上的显示方式。Android Studio 提供了几个Activity
模板来帮助您入门。 - 在 Configure your project 对话框中,输入 Name 作为“HelloWorld”。
- 接受默认公司域名 android.example.com,或创建唯一公司域名。此值加上应用的名称就是应用的软件包名称。如果您不打算发布应用,请接受默认值。您以后可以更改应用的软件包名称,但这项工作需要额外努力。
- 确认默认的保存位置是存储您的应用的位置。如果不是,请将位置更改为您的首选目录。
- 确保语言为 Kotlin。
- 确保最低 API 级别为 API 19: Android 4.4 (KitKat)。编写此 Codelab 时,Android Studio 表示,使用此 API 级别时,此应用将在大约 95.3% 的设备上运行。
(您可以在之后的 Codelab 中详细了解最低 API 级别。)若要立即了解详情,请点击请帮助我选择,系统会打开一个窗口,其中会显示相应 API 级别的相关信息。) - 选中使用 AndroidX 工件复选框。
- 将其他所有复选框保留为清除状态,然后点击 Finish。如果您的项目需要为您选择的目标 SDK 提供更多组件,Android Studio 会自动安装这些组件,这可能需要一段时间。按照提示操作并接受默认选项。
Android Studio 现在会创建您的项目,这可能需要一些时间。您应该不会遇到任何错误。如果您收到任何警告,请忽略它们。
在此任务中,您将探索 Android Studio 中的 HelloWorld 项目,并学习使用 Android Studio 进行开发的基础知识。
第 1 步:浏览“Project”窗格
- 如果尚未选择 Project 标签页,请选择该标签页。Project 标签页位于 Android Studio 窗口左侧的垂直标签页列中。系统会打开“Project”窗格。
- 要将项目显示为标准 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 是应用的一部分。 - 请注意,
<activity>
元素中引用了MainActivity
。应用中的任何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 build 运行的信息。您还会看到正在安装的 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
文件可让您为每个模块配置构建设置。(HelloWorld 应用只有一个模块,即应用本身的模块。)此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 对话框,其中列出了预配置的硬件设备。对于每种设备,该表都会提供针对其对角显示屏尺寸(尺寸)、屏幕分辨率(以像素为单位)(分辨率)和像素密度(密度)的列。
- 选择一部设备(如 Nexus 5x 或 Pixel XL),然后点击下一步。系统随即会显示 System Image 对话框。
- 点击 Recommended 标签页,然后选择要在虚拟设备上运行的 Android 系统版本(如 Pie)。
- 选择系统映像后,点击 Next。系统随即会打开 Android Virtual Device (AVD) 对话框。检查配置,然后点击完成。
第 2 步:在虚拟设备上运行应用
在此任务中,您最终将运行新应用。
- 在 Android Studio 中,选择 Run > Run app 或点击工具栏中的 Run 图标
。此时将显示 Select Deployment Target 对话框,警告您没有可用的设备。如果您未将实体设备连接到开发计算机,或者尚未启动虚拟设备,系统就会显示此警告。
- 在 Select Deployment Target 对话框中,从 Available Virtual Devices 下选择您创建的虚拟设备。点击 OK。
模拟器将像实体设备一样启动和启动。此过程可能需要一段时间,具体取决于计算机的速度。您的应用构建,当模拟器准备就绪后,Android Studio 会将应用 APK 上传到模拟器并运行。
您应该会看到如下图所示的 HelloWorld 应用。
在此任务中,您将在手机或平板电脑等实体移动设备(如有)上运行您的应用。始终在虚拟和实体设备上测试您的应用。
所需条件:
- 一部 Android 设备(如手机或平板电脑)。
- 一根 USB 数据线,用于通过 USB 端口将 Android 设备连接到计算机。
- 如果您使用的是 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 驱动程序。请参阅在硬件设备上运行应用。
挑战:现在,您已经设置并熟悉基本的开发工作流,请执行以下操作:
- 在 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 管理器
- 主题编辑器
提交应用评分
检查并确保应用具备以下条件:
- 一个
Activity
,屏幕上显示“Hello World”。 - 标题栏中显示“我的掷骰子。”
开始学习下一课:
如需本课程中其他 Codelab 的链接,请参阅“Android Kotlin 基础知识”Codelab 着陆页。