Android Kotlin 基础知识 01.1:使用入门

此 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 是否已正确安装。

  1. 打开 Android Studio(如果尚未打开)。
  2. 在主 Welcome to Android Studio 对话框中,点击 Start a new Android Studio project

  3. 系统会显示 选择项目 对话框。选择 Empty Activity(如下所示),然后点击 Next



    Activity 是用户可以执行的单个专注操作。每个应用都必须至少有一个 activity 作为其入口点。可以将此入口点 activity 视为其他程序中的 main() 函数。activity 通常具有关联的布局,用于定义界面 (UI) 元素在屏幕上的显示方式。Android Studio 提供了多种Activity模板,可帮助您轻松上手。
  4. Configure your project 对话框中,输入“HelloWorld”作为名称

  5. 接受公司网域的默认值 android.example.com,或创建唯一的公司网域。此值加上应用名称就是应用的软件包名称。如果您不打算发布应用,请接受默认值。您日后可以更改应用的软件包名称,但需要额外的工作。
  6. 确认默认的保存位置是您想要存储应用的位置。如果不是,请将位置更改为您首选的目录。
  7. 确保语言为 Kotlin。
  8. 确保最低 API 级别为 API 19:Android 4.4 (KitKat)。在编写此 Codelab 时,Android Studio 指出,如果使用此 API 级别,应用将可在约 95.3% 的设备上运行。
    (您将在后续的 Codelab 中详细了解最低 API 级别。如需立即了解详情,请点击帮我选择,系统随即会打开一个窗口,其中包含有关 API 级别的信息。)
  9. 选中 Use AndroidX artifacts 复选框。
  10. 将所有其他复选框保持未选中状态,然后点击完成。如果您的项目需要更多组件才能支持所选的目标 SDK,Android Studio 会自动安装这些组件,这可能需要一段时间。按照提示操作并接受默认选项。

Android Studio 现在将创建您的项目,这可能需要一些时间。您应该不会收到任何错误。如果收到任何警告,请忽略。

在此任务中,您将探索 Android Studio 中的 HelloWorld 项目,并学习使用 Android Studio 进行开发的基础知识。

第 1 1 步:探索“项目”窗格

  1. 如果尚未选择项目标签页,请选择该标签页。Project 标签页位于 Android Studio 窗口左侧的垂直标签页列中。系统会打开“项目”窗格。


  2. 如需将项目视为标准 Android 项目层次结构进行查看,请从“Project”窗格顶部的下拉菜单中选择 Android。(默认值为 Android)。您可以通过多种不同的方式查看项目文件,包括查看文件在文件系统层次结构中的显示方式。不过,使用 Android 视图可以更轻松地处理项目。

第 2 步:探索应用文件夹

应用的所有代码和资源都位于 app 文件夹中。

  1. Project > Android 窗格中,展开 app 文件夹。app 文件夹内有四个子文件夹:manifestsjavageneratedJavares
  2. 展开 java 文件夹,然后展开 com.example.android.HelloWorld 文件夹,以查看 MainActivity Kotlin 文件。



    java 文件夹包含 Android 应用的所有主要 Kotlin 代码。您的 Kotlin 代码之所以显示在 java 文件夹中,是有历史原因的。该惯例可让 Kotlin 与使用 Java 编程语言编写的代码(即使在同一项目和应用中)无缝互操作。

    如上图所示,应用的类文件包含在三个子文件夹中。com.example.hello.helloworld(或您指定的域名)文件夹包含应用软件包的所有文件。具体来说,MainActivity 类是应用的主要入口点。您将在下一个 Codelab 中详细了解 MainActivityjava 文件夹中的另外两个文件夹用于与测试相关的代码,例如单元测试。
  1. 请注意 generatedJava 文件夹。此文件夹包含 Android Studio 在构建应用时生成的文件。请勿修改此文件夹中的任何内容,因为在重新构建应用时,您所做的更改可能会被覆盖。不过,如果您需要在调试期间查看这些文件,了解此文件夹会很有用。

第 3 步:探索 res 文件夹

  1. Project > Android 窗格中,展开 res 文件夹。

    res 文件夹包含资源。Android 中的资源是指应用中使用的静态内容。资源包括图片、文本字符串、屏幕布局、样式和值(例如十六进制颜色或标准尺寸)。

    Android 应用会尽可能地将 Kotlin 代码和资源分开。这样一来,您就可以更轻松地找到应用界面中使用的所有字符串或图标。此外,当您更改其中一个资源文件时,相应更改会在应用中使用该文件的所有位置生效。
  2. res 文件夹中,展开 layout 文件夹,即可看到 activity_main.xml 文件。


您的 Activity 通常与界面布局文件相关联,该文件在 res/layout 目录中定义为 XML 文件。该布局文件通常以其 activity 命名。在本例中,activity 名称为 MainActivity,因此关联的布局为 activity_main

第 4 步:探索清单文件夹和 AndroidManifest.xml

manifests 文件夹包含向 Android 系统提供有关应用的基本信息的文件。

  1. 展开 manifests 文件夹,然后双击 AndroidManifest.xml 以将其打开。AndroidManifest.xml 文件包含 Android 系统运行应用所需的详细信息,包括哪些 activity 是应用的一部分。


  2. 请注意,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>
  1. 请注意 <activity> 内的 <intent-filter> 元素。此 intent 过滤器中的 <action><category> 元素会告知 Android 在用户点击启动器图标时从何处启动应用。在后续的 Codelab 中,您将详细了解 intent 过滤器。

您还可以在 AndroidManifest.xml 文件中定义应用所需的任何权限。权限包括应用读取手机通讯录、通过互联网发送数据或访问硬件(例如设备摄像头)的能力。

Gradle 是一种构建自动化系统,该系统使用领域专用语言来描述应用的项目结构、配置和依赖项。在编译和运行应用时,您会看到关于 Gradle 构建运行的信息。您还会看到有关正在安装的 Android 应用包 (APK) 的信息。(APK 是指 Android 操作系统用来分发和安装移动应用的软件包文件格式。)

探索 Gradle 系统:

  1. 展开 Gradle Scripts 文件夹。在 Project > Android 窗格中,此文件夹包含构建系统所需的所有文件。


  2. 找到 build.gradle(Project: HelloWorld) 文件。

    此文件包含构成项目的所有模块共有的配置选项。每个 Android Studio 项目都包含一个顶级 Gradle build 文件。此文件定义了项目中所有模块共用的 Gradle 代码库和依赖项。
  3. 找到 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)

如要在计算机上运行模拟器,您必须创建描述虚拟设备的配置。

  1. 在 Android Studio 中,依次选择 Tools > AVD Manager,或点击工具栏中的 AVD Manager 图标 AVD 管理器图标。系统随即会显示 Your Virtual Devices 对话框。如果您已创建虚拟设备,对话框会显示这些设备(如下图所示);否则,您会看到一个空白列表。

    Android 虚拟设备 (AVD) 管理器,其中显示了已创建的虚拟设备列表
  2. 点击对话框左下角的 +Create Virtual Device。系统会显示 Select Hardware 对话框,其中列出了一系列预配置的硬件设备。对于每种设备,该表都提供了 Size 列(提供对角线显示屏尺寸信息)、Resolution 列(提供以像素为单位的屏幕分辨率信息)和 Density 列(提供像素密度信息)。

    选择硬件设备
  3. 选择一个设备(例如 Nexus 5xPixel XL),然后点击 Next。系统随即会显示 System Image 对话框。
  4. 点击 Recommended 标签页,然后选择要在虚拟设备上运行的 Android 系统版本(例如 Pie)。


  1. 选择系统映像后,点击 Next。系统随即会打开 Android Virtual Device (AVD) 对话框。检查配置,然后点击完成

第 2 步:在虚拟设备上运行应用

在此任务中,您将最终运行新应用。

  1. 在 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 对话框,并警告您没有可用的设备。如果您未将实体设备连接到开发计算机,或者尚未启动虚拟设备,则会看到此警告。
  2. 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 调试功能,请按以下步骤操作:

  1. 在设备上,打开设置,搜索关于手机,点按关于手机,然后点按版本号七次。
  2. 返回到上一个页面(设置 / 系统)。开发者选项会显示在列表中。点按开发者选项
  3. 选择 USB 调试

第 2 步:在 Android 设备上运行应用

现在,您可以连接设备并从 Android Studio 运行应用。

  1. 使用 USB 线将 Android 设备连接到开发机器。设备上应会显示一个对话框,要求您允许进行 USB 调试。


  2. 选中一律允许选项以记住这台计算机。点按确定
  3. 在计算机的 Android Studio 工具栏中,点击 Run按钮 Android Studio 的“Run”图标。系统随即会打开 Select Deployment Target 对话框,其中列出了可用的模拟器和已连接的设备。您应该能在其中看到您的实体设备以及所有模拟器。


  4. 选择您的设备,然后点击 OK。Android Studio 会在设备上安装并运行该应用。

问题排查

如果 Android Studio 无法识别您的设备,请尝试以下操作:

  1. 拔掉 USB 线,然后再重新插上。
  2. 重启 Android Studio。

如果您的计算机仍找不到设备或声明设备“未经授权”,请按以下步骤操作:

  1. 拔掉 USB 线。
  2. 在设备的设置应用中打开开发者选项
  3. 点按撤消 USB 调试授权
  4. 将设备重新连接到计算机。
  5. 当系统提示时,授予 USB 调试授权。

您可能需要为设备安装合适的 USB 驱动程序。请参阅在硬件设备上运行应用

挑战: 现在,您已完成设置并熟悉了基本开发工作流程,请执行以下操作:

  1. 在 Android Studio 中创建新项目。
  2. 将“Hello World”问候语更改为“Happy Birthday to ”,并在后面添加最近过生日的人的名字。
  • 如需安装 Android Studio,请前往 Android Studio,然后按照说明下载并安装。
  • 如需在“Project”窗格中查看应用的 Android 层次结构,请点击垂直标签页列中的 Project 标签页。然后,在顶部的下拉菜单中选择 Android
  • 当您需要向项目添加新依赖项或更改依赖项版本时,请修改 build.gradle(Module:app) 文件。
  • 应用的所有代码和资源都位于 appres 文件夹中。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”的标题栏。

开始学习下一课:1.2:基本应用剖析

如需本课程中其他 Codelab 的链接,请参阅“Android Kotlin 基础知识”Codelab 着陆页