离线下载
PDF版 ePub版

Android SDK · 更新于 2017-09-20 17:00:34

Android SDK 上手指南:下一步学习方向

到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行 Android 应用程序开发,但 Android 所提供的发挥空间还远不止这些、因此开发中的可能性也几乎没有穷尽。因此,我们需要为自己的下一步学习选择明确的方向。在今天的文章中,我们将把全部注意力集中在可资选择的未来学习对象上。

【51CTO 专稿】在本系列教程当中,我们已经学习了如何从零开始学习 Android 应用程序开发。通过之前的文章中,我们了解了各类开发工具、探索了应用程序项目中所包含的基本要素、学习用户界面设计、交互性、资源以及数据的使用机制,另外我们也全面追踪了应用程序运行的整个过程。到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行 Android 应用程序开发,但 Android 所提供的发挥空间还远不止这些、因此开发中的可能性也几乎没有穷尽。因此,我们需要为自己的下一步学习选择明确的方向。在今天的文章中,我们将把全部注意力集中在可资选择的未来学习对象上。在本系列教程的下一篇文章——也就是最后一篇文章里,我们将通过一项测验回顾曾经了解过的各项知识。

介绍 通过阅读本系列教程,大家应该已经在创建 Android 应用时拥有多种可以选择的潜在发展方向。当然,如果大家已经规划好了具体的开发项目,那么由此带来的实际需求已经足以指导各位明确未来的学习路线。不过 Android 平台所提供的元素极为丰富,而且其中很多应用元素都普遍适用于我们将要接触的大多数应用。在今天的文章中,我们将近距离观察一部分实用性最高的主题,并以此为起点建立体系完整的 Android 开发技能。

1. 数据 第一步 大家可以利用我们之前创建好的示例应用项目尝试下面将要介绍的各种 Android 开发技巧。请注意,我们原先是把数据保存在 shared preferences 当中,因此大家可以选择将数据保存在文件内。我们要做的是尝试让用户利用 EditText 视图以及功能按钮实现数据的提交与保存。将用户数据写入到一个文件当中,让应用程序在启动时读取其内容并把结果显示在 TextView 视图当中。通过这种方式,大家可以实现持久性数据的保存,从而在应用程序下一次运行时加以使用。

第二步 另一项重要技能在于从远程资源,例如 Web 服务,当中获取数据。为了实现这一目标,我们需要在 Activity 类当中添加一个内部 AsyncTask 类,并借此进行远程数据获取。在获取到数据之后,还需将其显示在应用程序当中。此外,如果应用程序获取到的是 XML、JSON 或者其它一些常见数据格式,大家可能还希望对其加以解析或者进行格式调整。参阅谷歌官方提供的“连接到网络”部分的说明,其中提供的示例代码足以作为理想的起步素材。

第三步 另一种主要数据存储选项同样适用于很多应用程序的实际需求,这就是使用 SQLite 数据库。大家可以通过创建一个 SQLiteOpenHelper 类来尝试这种方式,在这里我们需要定义该斩架构,例如表和列。在应用程序的其它部分,我们可以要求 SQLiteOpenHelper 类将数据写入到数据库中并利用游标实现内容读取,从而将结果显示在应用程序的用户界面当中。再次提醒大家,我们可能需要将用户输入的数据保存在数据库当中,并在应用程序下一次启动时显示结果。除了向数据库中插入记录并对其进行查询之外,大家还可以尝试更新并删除记录。作为初次上手的起点,我们不妨先从阅读谷歌官方提供的“在 SQLite 数据库中保存数据”说明开始。

2. 应用屏幕 第一步 在已经创建完成的应用程序当中,我们只在用户界面当中使用了一个操作屏幕。接下来,大家可以通过在应用中创建第二个 activity 类来增加屏幕数量,即顺序打开 File、New、Class 菜单选项。今天的任务是在第一个屏幕——也就是主 activity 当中添加一个按钮,并在用户点触该按钮时启动第二个 activity。举例来说,如果我们开发的是一款游戏应用,那么该按钮所显示的文本内容可以是“游戏说明”,而第二个 activity 的名称则可以被设为 How.java。为第二个 activity 创建一个布局文件,其中包含一个将文本内容保存在 res/values 字符串 XML 文件中的 TextView。如果我们使用的示例应用如上所述是一款游戏的话,那么第二个 activity 中应该包含关于游戏操作与进行方式的信息。应用程序中的大部分信息显示都可以遵循这种简单的处理方式。

在第一个 activity 的 onClick 处理程序中,大家可以利用 intents 启动“游戏说明”activity。一旦我们在应用程序中包含了第二个 activity,则需要利用 putExtra 方法向其提交来自第一个 activity 的数据。大家也可以尝试反过来让第二个 activity 执行某些任务,并把获得的结果提供给第一个 activity。后者需要通过 onActivityResult 方法来接收结果数据。请大家点击此处查看谷歌官方提供的“Activity 类引用”说明以了解更多与此相关的知识。

第二步 作为下一个步骤,大家可以尝试在自己的 activity 当中包含多个不同用户界面视图。大家还会注意到,不同类型的视图需要通过不同的方式加以实现。在大家熟练掌握了不同视图类型的使用方法之后,接下来可以尝试使用 fragment——这样我们就能够在应用程序的不同部分中重复使用用户界面的各个组成元素了。

另一种实用性极高的用户界面组件要数 list 视图。在 list 视图中,屏幕会显示一份包含多种条目的列表。系统会利用 adapter 将来自数据源的信息填充到 list 视图当中,也就是实现由数据到视图的映射。大家可以利用 ListActivity 来取代标准的 Activity 类。在 list activity 当中,大家可以对方法集进行重写以响应用户与列表内条目的交互操作。作为学习 list 视图的开端,大家可以首先认真阅读谷歌官方提供的list 视图功能示例

一般来说,应用程序在外观与使用体验上最好能够与 Android 系统本身保持一致。只要可能,大家应该尽量利用标准化 Android 用户界面元素而非创建自己的定制组件。从这一理由出发,大家可能希望了解更多关于Action Bar的知识,并始终提醒自己在设计用户界面以及应用程序的导航模式时遵循上述结论。

3. 多媒体 大家可以在自己创建的 Android 应用程序当中使用多种媒体类型,例如音频与视频、动画以及通过设备摄像头所捕捉到的图片乃至视频等。Android 系统提供一系列标准方法,大家可以借此访问设备资源(例如摄像头)并实现特定使用需求(例如进行视频记录)。请大家查看《Android 开发者指南》中的“多媒体指南”一节以获取更多信息。

正如我们在本系列教程中所提到,大家可以在 Android 应用程序当中利用 XML 创建视觉元素、从而获得属于自己的可绘制组件。大家也可以利用 XML 来定义动画,并通过代码控制动画的播放效果。在 Android 平台上,我们可以利用动画为用户界面添加各种动态效果——系统支持的效果数量繁多,其中包括淡入淡出、旋转、翻转以及其它各种过渡类型。大家点击此处参阅谷歌官方提供的“添加动画”说明。

4. 与其它应用程序交互 第一步 在 Android 平台上进行应用程序开发的优势之一在于,我们可以充满利用平台所提供的现有资源,其中包括其它应用程序。正如我在本系列教程的前几篇文章中所提到,大家可以在不同应用程序之间实现数据共享并在自己的应用中使用这些共享数据。大家还可以允许用户利用电子邮件、即时消息以及社交网络等方式在我们的应用当中共享内容。最简单也最可靠的数据共享途径就是利用 send 意图。当我们的应用程序启动一条 send 活动时,操作系统会为用户提供一份应用程序列表、其中罗列了用户可以将内容发送至哪些目标处。请大家在着手尝试之前认真阅读谷歌官方提供的“向其它应用发送简单数据”说明,其中还包含几个示例。

第二步 除了使用 send 之外,我们还可以利用其它多种方式实现从应用程序内部启用 Android 资源,因此请大家在自己的项目多多进行尝试。举例来说,大家可以利用 dial 来拨出电话号码、利用 view 在浏览器中查看见面或者使用地图应用中的位置信息。大家还可以从设备的内置传感器处获取数据,从而使自己的应用程序能够捕捉并处理与位置及周边环境相关的数据。在多数情况下,我们可以通过在 action 启动结束时在应用程序与 Android 环境之间建立起对话,并向应用程序返回信息时触发其它 action。利用这种方式,我们的应用程序就可以充分利用 Android 设备所提供的移动特性。

5. 资源 第一步 我们已经讨论了未来学习的几大主要潜在方向,但事实上大家所接触的仍然只是 Android 平台颇为表面化的浅层次知识。这套平台仍然在不断变化,而可行性名单也会变得越来越长。针对常见任务的推荐性技术也会定期变更,因此如果大家希望能一直开发出高品质的 Android 应用程序,请记住不断学习才是最重要的职业习惯。

下面我再为大家推荐一些实用性很高的学习资源:

访问Android 开发者博客来获取关于这套平台的最新及未来发展趋势。该博客还经常提供一些功能性代码示例,可以作为很好的学习素材。

Vogella Android 指南是网络上现有的最具 Android 学习资源之一。Vogella 网站通常会提供一些完整的技术示例项目,旨在对官方开发者指南当中所涉及的专业知识进行详细讲解。

Google+上的 Android 开发者交流平台经常发布大量公告与 Android 开发讨论话题,同样值得大家多加关注。

正如其它开发平台一样,大家会在学习 Android 的过程中发现更多无法确定的问题,其中大部分都需要通过网络搜索加以解决。正如大家所了解,很多常见问题都能在Stack Overflow上找到答案——如果各位还不是该网站的常客,请马上去逛逛吧。

结论 在本系列教程当中,我的目标是帮助大家学习关于 Android 开发的基础知识。如果各位过去曾经学习过编程或者开发技能,肯定清楚本系列教程还远远不是探索的终点。如果大家有意继续为 Android 平台开发应用,则需要熟练运用本教程所介绍的知识并将其作为 Android 工具箱中的财富好好加以保管。作为本系列教程的结尾,我将在下一篇文章中提供一项测试、看看大家有没有真正掌握之前提到的内容——请做好准备吧!

上一篇: 应用程序发布 下一篇: 知识测试