1.1 背景知识
一、移动应用开发技术
2014年底,我国手机用户数已经达到了12.86亿户,移动电话用户普及率达94.5部/百人。手机市场的繁荣促使手机的功能越来越强大,并不断朝着智能化方向发展。近年来中国的智能手机用户增长很快,中国智能手机用户在2014年首次超过5亿人,由此也引发了对手机应用程序和游戏程序的庞大需求。外部应用程序的丰富程度和易用性,已成为消费者购买某款智能手机的决定因素之一。
中国移动、中国联通、中国电信三家运营商都具有移动网络通信运营资质,现有网络分为2G、3G和带宽更高的4G网络。4G是第四代移动电话行动通信标准的简称,该技术集3G与WLAN于一体,并能够快速传输数据、高质量的音频、视频和图像等。4G理论上能够以100Mbps以上的速度下载,比4兆的家用宽带ADSL快25倍,并能够满足几乎所有用户对于无线服务的要求。除了支持传统的通信业务之外,4G的无线高速业务也将会在移动终端上产生新的应用,如流媒体点播应用,与物联网、云计算和大数据的综合应用等。
移动应用程序的硬件平台主要是小型嵌入式设备,这些设备具有便携性,但在性能和功能上较PC要差,而且缺乏统一的标准,功能、外观和操作方式差别较大。开发移动应用程序的平台主要有J2ME、Symbian、Windows Mobile、iOS和Android,这些技术各有千秋。J2ME、Symbian和Windows Mobile是比较传统的开发技术,已经发展多年,而iOS、Android、Windows Phone则是近年来兴起的热门技术。目前,在这些平台上开发的应用程序数量一直在稳定增长,已经有超过百万个手机应用程序在应用商店出售。下面对这些技术做简要介绍。
Android是Google公司于2007年11月发布的基于Linux平台的开源手机操作系统。Android基于Linux技术,由操作系统、中间件、用户界面和应用软件组成。Android产品线较为丰富,覆盖商务、时尚、娱乐、中低端市场等各种人群。Android不仅对第三方软件完全开放,可免费提供给开发人员,使之可以对源代码进行修改,而且集成了大量的Google应用程序,例如Google地图、Gmail邮箱等,大大增强了Android手机的功能。Android主要支持的开发语言为Java和C/C++。
J2ME是Java 2Micro Edition的缩写,于1999年6月在JavaOne开发者大会上亮相。J2ME是为机顶盒、移动电话和PDA等嵌入式消费电子设备提供的Java语言平台,包括虚拟机KVM和一系列标准化的Java API。J2ME和标准版的J2SE、企业版的J2EE一起构成Java技术的三大版本。J2ME程序的执行方式是字节码解释,性能上会受到一定程度的影响。目前国内该技术已经接近淘汰。
Symbian公司成立于1998年6月,是由Ericsson、Motorola、Nokia等公司共同持股组成的合资公司。2008年6月Symbian公司被Nokia全资收购,成为其旗下公司。Symbian曾经是手机领域中应用范围最广的操作系统之一,提供多个不同版本的人机界面。Symbian主要支持的开发语言为C++、Java和C。目前国内该技术已经接近淘汰。
Windows Mobile是由微软公司在2003年6月发布的,从7.0版本后更名为Windows Phone。在此之前微软的智能终端设备操作系统主要分为Pocket PC和Smartphone两类。原形为Windows CE,是Microsoft用于Pocket PC和Smartphone的软件平台。Windows Mobile的优势在于将熟悉的Windows桌面扩展到移动设备中,界面设计、功能应用与PC类似,内置有Microsoft Office、Media Player等软件。Windows Mobile主要支持的开发语言为C#、C++和VB。现在微软公司力推的是Windows Phone平台。
iPhone是Apple公司在2007年1月举行的Macworld上宣布推出的,2007年6月在美国上市。iPhone使用了众多增强用户体验的领先技术,例如,多触点式触摸屏技术允许用户同时通过多个触点进行操作;基于传感器的隐式输入技术提高了手机的智能水平;全新的用户界面设计技术提高了手机的易用性;手机应用商店提供了源源不断的实用程序。iPhone将原本普通的手机电话变成了一个集潮流时尚于一体且功能强大的随身工具,引起了手机设计领域的一次新变革。iPhone的操作系统为iOS,其主要支持的开发语言为Objective-C、C、C++、JavaScript。
相比传统的软件发布,手机应用商店为程序开发者提供了更广阔的平台,程序开发者可将手机应用程序发布到网站上,分享自己的作品,并通过下载来和服务商按比例进行收益分配。图1-1、图1-2、图1-3分别为三家著名的手机应用商店,感兴趣的读者可登录网站浏览或者下载各种类型的手机移动应用程序,从中获取软件设计的灵感。
图1-1 中国移动的移动应用商城(mm.10086.cn)
图1-2 机锋软件(http://apk.gfan.com/)
图1-3 亚马逊应用商店(http://www.amazon.cn/mobile-apps/b?node=146628071)
二、典型移动应用案例
手机的优势在于其不但具有通信、多媒体、支持应用程序等功能,而且还易于携带且便于使用。移动应用主要分为企业应用和个人应用,讲究的都是实用性。进行移动应用开发需要遵循手机的特点,例如屏幕大小、存储空间、供电能力等。下面以移动办公、个人应用和手机游戏等典型应用为例进行介绍。
1. 移动办公
移动办公是指办公人员可以随时随地处理与业务有关的事情。要达到这个目标,可通过开发手机上的移动办公软件,实现与企业软件系统或者互联网的连接,获取办公所需的信息,并进行及时处理。移动办公的应用领域非常广泛,主要有:流程审批、行政执法、物流派送、信息查询等。国内许多行业都可以利用移动办公来进一步提高工作效率,例如,商务人士在出差的路途中可以及时地处理单位事务,获得市场信息;工商人员巡查市场时,可通过移动办公系统对商品进行现场监管查询,有效防止假冒伪劣食品的流通等。
移动办公需要将手机、无线网络和企业系统三者有机结合。实现移动办公系统一般需要重点解决两个问题:一是实现客户端软件与企业服务器的无线连接、数据传输等;二是客户端的界面要友好,使用简易,符合手机的操作特点。图1-4所示为Android移动办公系统界面效果示例。
图1-4 移动办公系统界面效果示例
2. 个人应用
手机出厂自带的软件类型一般较少,往往难以满足用户的个性化需求。个人移动应用系统的主要任务是针对手机自带软件功能不足的问题,开发设计出新的功能,为日常生活中的“衣、食、住、行”提供便利,体现出手机智能化助手的优势。例如,对各种类型的来电进行管理控制,对餐馆、景点、购物场所进行查询、定位。
个人应用中另一类比较重要的应用是移动学习(M-learning)软件。移动学习是通过移动通信、计算机、信息教育等多种技术实现在任何时间、任何地点开展学习的一种新型教育模式。移动学习的主要特征有三个:①自由性大,学习的时间和地点不固定,学习者能够自主安排学习计划;②主动性高,学习通常发生在零散时间或者特定情景下,学习者往往是出于提高稿自身能力或者解决问题的需要而进行学习,这种积极的学习动机更容易产生良好的学习效果;③便捷性强,学习的技术手段更为先进,学习者能够利用移动设备通过无线网络灵活快捷地获取知识。移动学习软件使人们在学习方式上摆脱时间和空间的约束,大大改变了传统的以固定教室为主的教学模式,使知识的传播更为及时和方便,因此可作为课堂教学之外的一种良好补充。如图1-5所示为金山词霸Android版手机界面。
图1-5 金山词霸Android版手机界面
3. 手机游戏
近几年随着手机的普及,特别是3G、4G网络的完善和智能手机性能的提高,手机游戏逐渐受到了业界的重视,成为移动增值业务的重点发展方向。早期的游戏主要是由手机厂商作为手机附属品提供的,例如“俄罗斯方块”、“贪吃蛇”等,而且这些游戏的画面较为粗糙,规则也很简单。随着手机硬件的提升以及众多开发人员的加入,目前的手机游戏在界面和可玩性上取得了长足的发展,具有较好的娱乐性和交互性。手机游戏的优势是可以在坐车、等人的空闲时间为手机用户提供娱乐休闲。手机游戏按内容属性来分,可以分为角色扮演游戏、动作游戏、策略游戏、格斗游戏等不同类型。
手机游戏的实现方式,可以有单机游戏、网络游戏、蓝牙游戏、模拟器游戏等。很多游戏的创意来自于PC。如图1-6所示为一款3D场景的捕鱼达人游戏界面。
图1-6 3D场景的捕鱼达人游戏界面
三、Android的发展历史
Android操作系统是由Google和开放手机联盟共同开发并发展的移动设备操作系统,其最早的版本开始于2007年11月的Android 1.0 beta,并且已经更新发布了多个Android操作系统版本。伴随着性能、接口的极大改进和功能的丰富,Android系统的运行变得越来越快、越来越省电,功能越来越丰富,嵌入的Google服务也越来越多。从2009年4月开始,Android操作系统改用甜点来作为版本代号,并按照大写字母的顺序进行命名(见表1-1)。在Android程序开发中,建议选择Android 2.1以上版本。
表1-1 Android主要版本发展历史