【专题文章】在这一系列教程中,我们从零开始学习Android应用开发。通过之前的文章,我们了解了各种开发工具,探索了应用项目所包含的基本元素,学习了用户界面设计、交互、资源和数据使用机制,也全面跟踪了应用运行的全过程。到目前为止,我们介绍的知识足以帮助您从一个非常理想的起点开始Android应用程序开发,但Android提供了更多的发挥空间,因此开发的可能性几乎是无穷无尽的。因此,我们需要为接下来的学习选择一个明确的方向。在今天的文章中,我们将把所有的注意力都集中在以后可以选择的学习对象上。在本系列教程的下一篇文章中,也就是最后一篇文章中,我们将通过小测验来复习所学的所有知识。简介通过阅读本系列教程,您在创建Android应用程序时应该已经有了多种潜在的开发方向可供选择。当然,如果你已经规划好了具体的开发项目,那么它带来的实际需求也足以指导你明确以后的学习路线。但是Android平台提供的元素极其丰富,其中很多应用元素普遍适用于我们会接触到的大部分应用。在今天的文章中,我们将仔细研究一些最实用的主题,并将它们作为构建可靠的Android开发技能集的起点。1.数据第一步大家可以使用我们之前创建的示例应用工程来尝试下面将要介绍的各种Android开发技巧。请注意,我们最初将数据保存在共享首选项中,因此您可以选择将数据保存在文件中。我们要做的就是尽量让用户使用EditText视图和功能按钮来提交和保存数据。将用户数据写入文件,让应用程序在启动时读取其内容并将结果显示在TextView视图中。通过这种方式,您可以保存持久数据,以便下次应用程序运行时可以使用它。第二步中的另一个重要技能是从远程资源(如Web服务)获取数据。为了达到这个目的,我们需要在Activity类中添加一个内部的AsyncTask类,并用它来进行远程数据的获取。获取到数据后,需要在应用中显示出来。此外,如果应用程序获取XML、JSON或其他一些常见数据格式,您可能还需要对其进行解析或格式化。请参阅Google的官方“连接到Web”部分以获取提供足够示例代码作为理想起点的说明。步骤3另一个也适合许多应用程序实际需要的主要数据存储选项是使用SQLite数据库。您可以通过创建一个SQLiteOpenHelper类来尝试,我们需要在其中定义架构,例如表和列。在应用程序的其他部分,我们可以要求SQLiteOpenHelper类向数据库写入数据并使用游标读取内容,以便在应用程序用户界面中显示结果。再次提醒大家,我们可能需要将用户输入的数据保存在数据库中,并在下次应用启动时显示结果。除了向数据库中插入记录并进行查询外,还可以尝试更新和删除记录。作为初次入门,我们不妨先阅读Google官方提供的《在SQLite数据库中保存数据》使用说明。2.应用程序屏幕第一步是在创建的应用程序中,我们只在用户界面中使用一个操作屏幕。接下来,您可以通过在应用程序中创建第二个Activity类来增加屏幕数量,即依次打开File、New和Class菜单选项。今天的任务是在第一个屏幕上添加一个按钮,这是主要的活动,并在用户点击按钮时启动第二个活动。比如我们开发一个游戏应用,按钮显示的文字可以是“GameInstructions”,第二个activity的名字可以设置为How.java。为第二个activity创建一个布局文件,其中包含一个TextView,将文本内容保存在res/values字符串XML文件中。如果我们使用的示例应用程序是如上所述的游戏,则第二个活动应包含有关游戏如何运行和进行的信息。应用程序中显示的大部分信息都可以遵循这种简单的方法。在第一个活动的onClick处理程序中,您可以使用意图启动“游戏说明”活动。在我们的应用程序中包含第二个活动后,我们需要使用putExtra方法将第一个活动的数据提交给它。也可以尝试让第二个activity反向执行一些任务,将得到的结果提供给第一个activity。后者需要通过onActivityResult方法接收结果数据。请点击这里查看谷歌提供的“ActivityClassReference”描述以了解更多相关信息。第2步作为下一步,您可以尝试在活动中包含多个不同的UI视图。您还会注意到,不同类型的视图需要以不同的方式实现。在你掌握了不同视图类型的使用之后,你可以尝试使用片段——这样我们就可以在应用程序的不同部分重用用户界面的各个组件。另一个非常有用的用户界面组件是列表视图。在列表视图中,屏幕显示包含各种项目的列表。系统会使用适配器将数据源中的信息填充到列表视图中,即实现数据到视图的映射。您可以使用ListActivity来替换标准的Activity类。在列表活动中,您可以重写方法集以响应用户与列表中项目的交互。作为学习列表视图的开始,可以先仔细阅读Google官方提供的列表视图功能示例。一般来说,应用的外观和体验可以与Android系统本身保持一致。只要有可能,您应该尝试利用标准的Android用户界面元素,而不是创建您自己的自定义组件。为此,您不妨多了解一下ActionBar,并在设计应用程序的用户界面和导航模式时时刻提醒自己遵循上述结论。3.多媒体您可以在您创建的Android应用程序中使用多种媒体类型,例如音频和视频、动画、图片甚至是设备摄像头拍摄的视频。Android系统提供了一套标准的方法,你可以使用这些方法来访问设备资源(比如摄像头)和实现特定的使用需求(比如视频录制)。请查看《Android开发者指南》中的“多媒体指南”部分以获取更多信息。正如我们在本系列教程中提到的,您可以使用XML在Android应用程序中创建可视化元素,以获得您自己的可绘制组件。也可以使用XML定义动画,通过代码控制动画播放效果。在Android平台上,我们可以使用动画为用户界面添加各种动态效果——系统支持大量的效果,包括淡入淡出、旋转、翻转以及其他各种过渡类型。点此参考谷歌官方提供的“添加动画”说明。4.与其他应用程序交互在Android平台上开发应用程序的首要优势之一是我们可以充分利用平台提供的现有资源,包括其他应用程序。正如我在本教程系列的前几篇文章中提到的,您可以在不同的应用程序之间共享数据,并在您自己的应用程序中使用这些共享数据。您还可以允许用户通过电子邮件、即时消息和社交网络在我们的应用程序中共享内容。共享数据的最简单和最可靠的方法是使用发送意图。当我们的应用程序启动发送活动时,操作系统将为用户提供一个应用程序列表,其中列出了用户可以将内容发送到的目的地。在开始尝试之前,请仔细阅读Google提供的官方“将简单数据发送到其他应用程序”说明,其中还包含一些示例。第二步,除了使用send,我们还可以使用其他方式在应用程序内部启用Android资源,请在自己的项目中尝试一下。例如,您可以使用dial来拨打电话号码,使用view在浏览器中查看会议,或者在地图应用程序中使用位置信息。您还可以从设备的内置传感器获取数据,从而使您的应用程序能够捕获和处理有关您的位置和周围环境的数据。在大多数情况下,我们可以通过在动作启动结束时在应用程序和Android环境之间建立对话并向应用程序返回信息来触发其他动作。这样,我们的应用程序就可以充分利用Android设备提供的移动功能。5.资源在第一步中,我们讨论了未来学习的几大潜在方向,但实际上,大家所接触到的仍然只是Android平台的粗浅知识。平台集仍在不断变化,可能性列表越来越长。常见任务的推荐技术会定期更改,因此如果您想不断开发高质量的Android应用程序,请记住持续学习是最重要的职业习惯。让我为您推荐一些实用性很强的学习资源:访问Android开发者博客,了解该平台的最新和未来发展趋势。博客还经常提供一些功能代码示例,可以作为很好的学习资料。Vogella的Android指南是网络上最好的Android学习资源之一。Vogella网站通常会提供一些完整的技术示例项目,旨在详细解释官方开发者指南中涉及的专业知识。Google+上的Android开发者交流平台经常会发布大量的公告和Android开发讨论话题,也值得多加关注。就像其他开发平台一样,你在学习Android的过程中会发现更多不确定的问题,其中大部分需要通过上网搜索来解决。众所周知,许多常见问题都可以在StackOverflow上得到解答-如果您不是该网站的普通用户,请立即这样做。结束语在本系列教程中,我的目标是帮助您学习Android开发的基础知识。如果你以前学过编程或开发技能,你一定知道这一系列教程远没有探索的终点。如果您打算继续为Android平台开发应用程序,您需要掌握本教程介绍的知识,并将其作为Android工具箱中的珍宝。作为本系列教程的结尾,我会在下一篇文章中提供一个测试,看看你是否真的掌握了前面的内容——请做好准备!
