启动您的 Android 应用:生成您的第一个项目(3 部分中的第 2 部分)
体验生成你的第一个 Android 应用,同时学习使用最新版本的 Android Studio。
文章笔记
本文包含我即将出版的书籍《启动你的 Android 应用》的第二章。
要阅读引言和第一章,请查看我在 CodeProject 上的这篇文章:
https://codeproject.org.cn/Articles/1077609/Launch-Your-Android-App-Intro-Getting-Started-part (在新标签页中打开)
如果你快速向下滚动本文,你会发现它似乎很长。 这是因为它包含了 22 张截图。
演练体验
我正在以演练的方式撰写这本书,以期创造更好的信息产品。我希望这种方法能让您阅读并体验开发过程,就像您在 Android 开发者肩旁观看一样。
我相信这将是涵盖 Android 开发这个复杂主题的有效方式。
尝试创建混合格式
这在某种程度上是视频教程与书籍的混合格式。
这种格式试图解决什么问题?
这是一种试图解决阅读书籍需要输入代码才能看到结果的挑战。 相反,在这里你将能够专注于阅读和体验代码,就像你第一次看着 Android 开发者的肩膀一样。 然后,在阅读完本章后,你将更容易去自己编写代码,只需简要地参考书籍。
有增值吗?
我相信,即使您是高级开发者,也会发现这次演练相当有趣,因为您可以直接快速浏览文章(和书籍),作为您在 Android Studio 中工作时将看到的内容的预览。
创建新的 Android 项目
点击“启动新的 Android Studio 项目”选项。
当你点击该选项时,会弹出一个巨大的窗口。
应用程序名称已高亮显示,可以让你输入你的应用程序的名称。
继续输入单词“test”,因为这就是我们这个第一个应用程序的名称。
当你输入该单词时,你会发现 Android Studio 会给你关于命名应用程序的提示。(参见下一张截图中的红色文本)。
继续将名称更改为以大写字母 T 开头,然后按 Tab 键到下一个字段(公司域名)。
我在那个框里输入我的网络域名(raddev.us),但你不应该使用我的域名。
你应该使用你的网站域名,或者如果你没有域名,就使用你的名字或名字和姓氏,或其他标识符。
公司域名值
现在这不是很重要,但当你准备将你的真实应用程序部署到 Google Play 商店时,你需要一个更清晰地标识你作为应用程序创建者的东西。
包名
正如你所见,包名是通过使用你在“公司域名”文本框中输入的值生成的。 当然,它还会获取值,颠倒顺序,然后将其添加到你的应用程序名称前面。
包名是一种为你的代码提供命名空间的一种简单方法,这样如果其他人创建了类似的 Java 类,它们就可以区分开来。 同样,现在这些对你可能都没有意义,这没关系。 我们将在后面的章节中进一步解释。 现在,重要的是不要让这个小细节困扰你。 该值不是永久的,在这个时候也不重要。
完成所有这些之后,点击 [下一步] 按钮。
一个新的窗口将会出现,它允许 Android Studio 项目模板收集有关你项目的更多信息。
Android API 级别
你首先会注意到的是,模板自动将目标定位到运行 API 15(或更高版本)的手机和平板电脑设备。 这也被称为 API 级别(API Level 15)。
主要版本
Android 操作系统的每个主要版本(1.x、2.x 等)都用一个代号来指代,这个代号是一个甜点(或含糖零食)的名称。 他们这样做是为了使用户更容易地指代他们正在运行的操作系统的主要版本。 用户可以说,“我正在运行 Ice Cream Sandwich。” “我正在运行 Jelly Bean。”
为什么要针对这个版本?
在我们的例子中,模板将目标定位在版本 4,Ice Cream Sandwich。 API 15 指的是 Android 的特定版本(包括次要修订)。 API 15 是 Ice Cream Sandwich 的 4.0.3 版本。 这对 Android 开发人员很重要,因为 Ice Cream Sandwich 的 4.0 版本可能没有版本 4.0.3 具有的某些功能,因此某些代码可能无法正常工作。
为什么模板会针对这个旧版本?
模板选择这个稍微旧的版本是为了在大量功能和可以运行你的应用程序的大量用户之间取得平衡。
更新的版本,更少的用户
如果你针对较新的平台,例如 Android 6.0(Marshmallow,API Level 23),你将针对更少用户,因为还没有那么多设备发布并运行该版本的操作系统。
操作系统使用情况统计数据
你可以在以下网址查看当前运行每个操作系统版本的用户数量的统计数据:
https://developer.android.com.cn/about/dashboards/index.html
检查这些数据可以帮助你选择最佳版本来针对最多的用户,从而让你的应用程序拥有更大的市场。
模板自动选择了 API Level 15,因为它知道该级别目前在功能和市场规模之间提供了强大的平衡。
在撰写本文时,如果你选择 API Level 15,那么超过 98% 的设备都可以运行你的应用程序。
其他平台类型
你还可以看到,项目模板允许你创建运行在可穿戴设备(手表等)、电视,甚至 Android Auto 和 Android Glass 上的应用程序。
现在,我们将接受默认设置,并将其作为手机或平板电脑应用程序运行,所以继续点击 [下一步] 按钮。
当我点击那个按钮时,又发生了一次安装,看起来如下:
Android Studio 确定我需要一些构建工具,以便我能够构建应用程序。
以下是我完成时看到的详细信息:
最后 [下一步] 按钮被启用了,现在继续点击 [下一步],你就会看到以下内容:
选择一个布局模板
Android Studio 正在提示我们为应用程序的 Activity 选择一个布局类型。
Android Activity 是用户界面,它允许用户与你的应用程序进行交互。 每个 Activity 都应该专注于让用户做一件事。
现在,我们将选择名为“Blank Activity”的默认 Activity。 请注意,它不是“Empty Activity”——那是一个什么都没有的 Activity。 相反,这个只是提供了一个包含一些 UI 元素但没有任何填充内容的 Activity。
当我们构建应用程序时,它将更有意义。
点击 [下一步] 按钮。
Activity 名称
Android Studio 希望你为你的 Activity 命名,以便你可以在代码中引用它。
它建议使用 MainActivity 作为名称,因为当应用程序启动时,用户将看到这个 Activity。 这是一个好名字,也是我作为开发者在我的项目中总是喜欢使用的名称,以便提醒我哪个 Activity 是用户首先看到的。
布局名称
布局名称是根据你在 Activity 名称编辑框中输入的名称生成的。 布局名称是 Android Studio 生成的 XML(eXtensible Markup Language)文件的名称。 布局文件代表了用户在 Activity 上看到的所有图形元素(按钮、编辑框等)。 我们将学习如何编辑和创建布局文件,以便我们的应用程序为用户提供一种输入文本和通过点击按钮执行命令的方式。
图形布局编辑器
Android Studio 还提供了一种方法,可以将编辑框和按钮等用户界面元素拖放到我们的 Activity 上。 当你将这些新元素拖放到 Activity 上时,Android Studio 会自动为你生成 XML 布局文件。
标题
“Title”编辑框允许你输入一个将显示在 Activity 顶部的标题。
继续将该值更改为“First App”,这样你就可以在构建和运行应用程序时看到它。
它看起来会像这样:
菜单资源名称
菜单资源名称允许你为出现在 Activity 顶部的菜单命名,以便你可以在代码中引用它。 这就是当你点击应用程序右上角的三个点的垂直线时出现的菜单。
现在,`menu_main` 就可以了,同样可以让我们记住这是我们主 Activity 的主菜单。
Fragment 复选框
现在,我们不使用布局 Fragment,但我们稍后会学习使用它们。 布局 Fragment 是一种强大的方式,可以通过将 UI 的一部分重新加载到当前加载的 Activity 中来重用 Activity。 我们将学习如何创建和控制这些强大的元素,但那是以后。 现在,保持复选框未选中。
继续点击 [完成] 按钮,Android Studio 将会创建项目。
你将看到类似于浮动进度条的内容。
Android Studio 正在准备所有东西,以便你开始开发你的应用程序。
称为 Gradle 的构建系统正在进行大量工作来准备你的应用程序以供开发。
最后,你将看到主 Android Studio 窗口。
技巧
Studio 还尝试提供提示,帮助你在每次启动时更深入地了解系统。 当然,如果这些提示让你烦恼,你可以关闭它们,但是,它会在其他工作进行时尝试提供这些提示。
Gradle 仍在工作
即使 Android Studio 的主窗口现在可见,仍然有一些工作在进行。 你可以在窗口底部看到一个状态栏,它会指示 Gradle(构建系统)正在后台进行的一些工作。
它正在索引文件(以便以后帮助你查找代码)。它正在构建你的项目,以便第一次运行时可以使用,它还会执行其他任务,试图在你没有做太多事情时利用后台处理能力。
最后,如果你等待足够长的时间,Android Studio 就会为你打开一些文件,它看起来会与以下内容类似。
你可以在提示对话框后面看到一点东西。
我将点击提示上的 [关闭] 按钮,再次向你展示主 Android Studio 窗口。
你可以看到主 Activity 在 Android 手机上的样子。
如果你仔细看,你会发现 Activity 的左上角显示着“Hello, world”字样。
理解我们在项目中的位置
已经生成了很多代码,Android Studio 用户界面中也有很多事情在发生。 对于初次接触项目来说,这可能令人不知所措。 让我们来看看 Android Studio 中一些关键区域,这将有助于理清思路。
项目导航器
首先,看看 Android Studio 的最左侧,它看起来像这样:
项目 TreeView 类似于文件资源管理器
这类似于文件资源管理器类型的 TreeView,但略有不同。
请注意,蓝色高亮显示表示当前在右侧查看的文件。
蓝色高亮显示表明名为 content_main.xml 的文件(位于 layout 文件夹下)当前已打开。 这就是我在创建项目时提到的 XML 布局文件。
垂直项目栏
再往左看一点,看看那个垂直条,注意上面有三个词。 它们是:
-
结构
-
项目
-
标题
现在重要的一点是,“Project”当前被选中。 如果你点击其他选项之一,你的视图会发生变化。 现在,其他选项不会做太多事情,只会稍微改变这个导航栏中的视图。 但稍后它们会有一些意义。 现在重要的是要注意你选择了“Project”选项,它显示了 TreeView,允许你检查项目中的文件。
两个 XML 文件
你还会注意到,在 layout 文件夹中有两个 XML 文件,尽管我们之前只讨论了一个。 这两个文件分别命名为:
-
activity_main.xml
-
content_main.xml
这仅仅是因为项目将这两个 XML 文件分开,以帮助你更好地管理用户界面元素。 我们稍后会看到更多关于这方面的内容。
项目结构
接下来帮助你熟悉项目中的文件的是查看文件所在的文件夹。
再次注意,这些代表 UI 的 XML 文件位于名为 layout 的文件夹下。
然后,注意 layout 文件夹位于一个名为 res 的文件夹内。
约定俗成的组织方式
`res` 是 resource 的缩写。 在此文件夹下的所有文件都是你的项目将使用的资源。 例如图片、图标和其他用户界面元素。你可以看到在 res 文件夹下还有其他文件夹,如 menu、mipmap 和 values。 我们稍后会了解更多。
这都是一种保持事物有条理的传统方式。 你可以改变组织方式,但 Android Studio 的开发者为你提供了一个结构,理解它将帮助你在开发应用程序时更好地理解你在做什么。
兄弟,我的代码在哪?
到目前为止,我们还没有看到任何 Java 代码。
如果你查看项目树的最顶部,你会看到顶层节点(文件夹)名为 app。
该文件夹包含我们一直在查看的(res),但它也包含一个名为 manifests 的文件夹和一个名为 java 的文件夹。
同样,这都是为了组织。
Android Manifest 文件
manifests 文件夹只有一个文件,它(不出所料)名为 AndroidManifest.xml。 又是 XML。 这是一个配置文件,它向操作系统甚至 Google Play 商店提供有关你应用程序的信息。 当我们开发应用程序时,我们会看到这个文件做什么。
不过,现在,让我们来看看 java 文件夹里有什么。
如果你点击 java 文件夹旁边的三角形箭头,你将看到该文件夹会展开。
然后,如果你展开显示 us.raddev.test 的那个,它也会展开,你会看到一个带有图标和标签 MainActivity 的项目。
这是代表我们的 MainActivity 的 Java 代码。
请注意,你还会看到一个名为 us.raddev.test(androidTest) 的文件夹,但该代码代表了一些我们可以稍后用于测试我们应用程序的代码。 现在,我们将忽略它。
打开 MainActivity 代码
要打开(并查看)代码,请现在双击 MainActivity 项目。
当你这样做时,文件将在右侧显示如下:
理解你正在看的内容的重要提示
有几个重要的提示可以帮助你理解你正在看的内容。
-
标题栏(浅蓝色)已更改,显示你正在右侧查看的文件的完整路径。
-
左侧的项目导航树显示 MainActivity 已高亮。
-
右侧内容上方的选项卡显示文件名 MainActivity.java。
折叠的代码部分
但是,你仍然没有看到所有的代码。
Android Studio 编辑器会折叠代码部分,并在它们旁边放置一个 [+] 符号,并在折叠了代码的地方显示省略号 (...) 和箭头。
这是 MainActivity.java 顶部的第一个例子,其中是 imports 部分:
点击 [+] 按钮展开代码,你将看到:
再往下一点,还有一些折叠的代码,看起来如下(我高亮了该部分):
看到代码中的小箭头了吗(在单词 (view) 之后)?
那是一个折叠的代码部分。 要查看所有代码,请再次点击左侧的 [+] 按钮。
它会像这样:
你可以看到代码实际上正在使用 Snackbar 显示某种消息,比如“Replace with your own action.”。
现在你知道如何创建新项目以及如何在 Android Studio 中进行一些导航,我们就可以继续构建和运行应用程序了。
构建应用程序非常简单。 它只是在 Android Studio 中执行一个命令的问题。 然而,运行应用程序包含一些挑战,因为我们必须在 Android 模拟器上运行应用程序。
模拟器挑战
如果一切顺利,模拟器将启动并在你的电脑上完美运行。 不过,要成功运行它,还有很多步骤需要完成。
再次,因为本章包含了很多基础知识,并且构建和运行应用程序需要大量的截图和解释,所以我们将在第 3 章中完成这项工作。
章节总结
本章试图提供一个关于使用 Android Studio 生成第一个项目的经验的良好演练。 如果你一直跟着做,你已经走了很长一段路,而且花费的时间并不长。
当我们构建并在模拟器上运行应用程序时,你将获得关于系统如何工作的很多知识。
我们将在第 3 章中立即深入了解如何运行模拟器和执行我们的应用程序。
历史
本文首次发布:2015-02-10