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

2014-02-28 11:01 核子可乐 译 51CTO 字号:T | T

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

AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

【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工具箱中的财富好好加以保管。作为本系列教程的结尾,我将在下一篇文章中提供一项测试、看看大家有没有真正掌握之前提到的内容——请做好准备吧!

Android SDK上手指南:下一步学习方向的更多相关文章

  1. Android SDK上手指南:应用程序发布

    Android SDK上手指南:应用程序发布 2013-12-26 15:47 核子可乐译 51CTO 字号:T | T 在今天的文章中,我们将重点探讨通过Google Play软件商店进行应用程序发 ...

  2. Android SDK上手指南:知识测试

    Android SDK上手指南:知识测试 2014-01-22 10:00 核子可乐 译 51CTO 字号:T | T 在从零开始学习Android开发系列教程当中,我们已经了解了为Android平台 ...

  3. Android SDK上手指南:示例项目

    Android SDK上手指南:示例项目 2013-12-26 15:40 核子可乐译 51CTO 字号:T | T Android SDK示例项目中的应用能够执行种种功能,例如各类用户界面元素.数据 ...

  4. Android SDK上手指南:Activity与生命周期

    Android SDK上手指南:Activity与生命周期 2013-12-26 15:26 核子可乐译 51CTO 字号:T | T Activity生命周期并不仅仅在用户运行应用程序之后才开始生效 ...

  5. Android SDK上手指南 2:用户界面设计

    http://mobile.51cto.com/ahot-419184.htm 内容简介 我们将为应用程序项目添加布局方案,在这方面XML与Eclipse ADT接口将成为工作中的得力助手——不过在后 ...

  6. Android SDK上手指南 3:用户交互

    在这篇教程中,我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应.为了达成这一目标,我们需要在应用程序的主Activity类中略微涉及Java编程内容.如果大家在Java开发方面 ...

  7. Android SDK上手指南1:应用程序结构

    一直说要学java要学android开发,可是一直胡乱地忙活这忙活那,之前开始学了一点也中断了.说是没时间,都是借口,回顾一下自己的生活感觉缺少点激情,没有什么奋斗的动力,所以好多时间就浪费了.刚刚考 ...

  8. Android SDK 开发指南

    Android SDK 开发指南 视频详解 以下视频是对融云 Android SDK 开发使用的详细讲解,您可以在阅读文档时配合学习.   更多视频教程如下: CSDN 融云 Android SDK ...

  9. 腾讯信鸽推送Android SDK快速指南

    信鸽Android SDK是一个能够提供Push服务的开发平台,提供给开发者简便.易用的API接口,方便快速接入.目前支持Android 2.2及以上版本系统.本文档将引导用户以最快的速度嵌入信鸽SD ...

随机推荐

  1. js面试总结2

    原型和原型链: 题目,知识点,解答: 1.如何准确地判断一个变量是数组类型 2.写一个原型链继承的例子 3.描述new一个对象的过程 4.zepto(或其他框架)源码中如何使用原型链. 知识点 构造函 ...

  2. Kibana启动报错 server is not ready yet的解决方案

    前言: ​ 今天在搭建elasticsearch集群的时候,再次使用Kibana操作elasticsearch的时候报告Kibana server is not ready yet的问题, ​ 通过在 ...

  3. 驱动层hook系统函数的时,如何屏蔽掉只读属性?

    对于Intel 80486或以上的CPU,CR0的位16是写保护(Write Proctect)标志.当设置该标志时,处理器会禁止超级用户程序(例如特权级0的程序)向只读页面执行写操作:当该位复位时则 ...

  4. private定义的static字段子其他类能通过"类名.字段名"调用吗?

    不能!

  5. 基础数据类型汇总补充,python集合与深浅拷贝

    一.基础数据类型汇总补充 1.查看str所有方法方式 2.列表:在循环中删除元素,易出错或报错(飘红) lis = [11,22,33,44,55] # for i in range(len(lis) ...

  6. 【LGP4714】「数学」约数个数和

    题目 众所周知,除数个数函数\(\sigma_0=I^2\),\(I\)就是狄利克雷卷积里的\(1\)函数 于是熟悉狄利克雷卷积的话很快就能看出我们要求的就是\(I\times I^{k}\),即\( ...

  7. MySQL5.1的安装过程

    开始配置文件

  8. 用星星画菱形--Java

    用星星画菱形 public class Hello{ public static void main(String[] args) { char star = '\u2605'; System.out ...

  9. 解决Mysql因内存不足启动失败的问题

    参考:https://www.jb51.net/article/136432.htm 一.查看内存 free -h free -m 二.解决方法: 1.增加swap交换空间解决问题: dd if=/d ...

  10. 【颓废篇】人生苦短,我用python(一)

    谁渴望来一场华(ang)丽(zang)的python交易! 最近突然产生了系统学习python的想法. 其实自从上次luogu冬日绘板dalao们都在写脚本就有这种想法了. 最近被计算几何势力干翻的我 ...