2.1 移动GIS应用开发平台概况
移动GIS应用开发是指以智能手机、PAD等便携式智能通信终端作为应用开发目标平台和应用终端。移动GIS应用开发源于传统的地理信息系统软件开发,伴随着便携式智能移动终端设备的普及,手机等移动通信设备已成为人们生活中必备的随身物品,同时各种App移动应用软件以便捷的移动式掌上服务逐渐成为人们工作、生活离不开的好帮手。目前,使用智能移动通信终端设备的用户对于App移动软件产品的需求十分旺盛,对应用体验的要求更为愉悦化、人性化和可定制化。此外,现代移动通信技术(3G/4G/Wi-Fi网络)的广泛应用,提供了高质量音频、视频、文本和图像等数据的快速传输,显著提高了用户即时应用服务的体验效果,从而具备了传统PC服务不可比拟的优越性。
目前,应用较为广泛的移动开发平台包括,iOS(Apple)、Android(Google)、Windows Phone(Microsoft)、BlackBerry(RIM)、Java ME、Flash Lite,以及移动网络开发技术(WAP/XHTML/CSS/JavaScript)等。从移动操作系统市场最新占有率分析来看,Android的市场占有率超过70%,iOS占有率超过10%,Windows Phone占有率在3%左右,其他移动操作系统平台的市场占有率则十分有限。
本章重点介绍Android、iOS及Windows Phone三大系统。为了更好地讨论三大系统在不同方面的特点,本章从操作系统、应用程序框架、应用上架过程、应用生命周期等多个方面,对三大移动操作系统进行分析。
2.1.1 操作系统
Android系统使用Linux内核,基于Linux的驱动和硬件抽象层模块。Android应用程序的开发有两种方式可供选择:①完全运行在Dalvik虚拟机上的Java应用程序。②使用JNI(Java本地调用)原生库的Java应用程序。Dalvik虚拟机是一种基于Linux内核之上特殊的Java虚拟机,针对Java应用程序在移动设备上的运行做特殊的优化。Android的应用程序框架由Java服务、应用程序编程接口、公共运行库、原生库和原生服务组成[1]。Android开发者可以直接调用原生库,由于原生代码能够提供比Java字节码更好的性能,故而大大提高了应用程序的性能,这在CPU密集的代码和媒体代码的处理上得到了很好的体现。
Mac OS X是苹果公司为其Mac机开发的桌面操作系统,而iOS系统实际上是从Mac OS X操作系统汇总派生出来的。Mac OS X以Unix为基础,联合Mach微内核以及众多来自FreeBSD和NetBSD组件的操作系统。iOS操作系统核心组件与Mac OS X相同,为了提高用户体验,苹果公司在性能、稳定性等方面做了特殊的优化。iOS开发者使用iOS软件开发工具和Xcode集成开发环境,使用面向对象的编程语言Objective-C作为开发语言。iOS架构自下而上包括四层:核心操作系统层(Core OS Layer)、核心服务层(Core Service Layer)、媒体层(Media Layer)和可轻触层(Cocoa Touch Layer)[2]。
Microsoft公司的手机操作系统起源于2000年的Pocket PC 2000。该系统构建在Windows CE 3.0内核之上,并没有任何移动电话的功能,支持多处理器的架构,包括ARM架构,无内部互锁流水级的微处理器和x86。最初的设想是通过用手写笔代替电脑鼠标,在移动设备上提供类似桌面操作系统的用户体验。自2003年,微软发布Windows Mobile 2003 (以及第二版)开始提供手机通话的相关功能以来,Windows Mobile 5、Windows Mobile 6、Windows Mobile 6.1直到Windows Phone 7、Windows Phone 8、Windows Phone 10的发布,微软改变了原有的设计理念,Windows Phone 7启动了一种全新的“瓷片”界面,基于Silver Light和XNA的应用程序框架,以及对于Xbox Live和Zune的集成。Windows Phone 7的系统架构自下而上包括三层:硬件层、内核空间层和用户空间。用户空间内运行所有.NET框架下的应用程序,内核空间内执行操作系统内核、驱动和系统服务。Windows Phone 10不仅是桌面操作系统,同时也是手机操作系统,解决PC端、PAD端和智能手机端的无缝连结成为其最大亮点。
2.1.2 应用程序框架
应用程序框架是指在某个特定的开发应用领域中,程序之间的共同结构部分。应用程序框架规定了应用的体系结构,阐明了整个设计、协作组之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及实例之间的协作方法,并为组件复用提供了上下文关系。应用程序框架不仅是应用程序快速开发的基础,更是软件复用的重要手段。
Android应用程序大部分都是建立在Android应用程序框架(Application Framework)的基础上开发的,Android框架由一组Java程序包(Java Packages)组成,包括活动管理器(Activity Manager)、视图系统(View System)、窗口管理器(Windows Manager)、电话管理器(Telephony Manager)、内容提供器(Content Provider)、通知管理器(Notification Manager)等。开发者们不但能够应用Java程序包提供的接口访问基本的系统功能,而且能够直接将一些原生库嵌入到开发者自己的Java程序中。
iOS的应用程序构建在可轻触层(Cocoa Touch Layer)上,可轻触层包括了一组扩展C的面向对象编程框架,提供多种软件开发的工具包。Cocoa Touch框架为应用程序提供了丰富的用户界面,大部分Cocoa Touch的功能是用Objective-C实现的,这种面向对象的语言能够快速编译运行应用程序,其采用了真正的动态运行系统,从而极大地提高了程序的灵活性。
Windows Phone 7的应用程序框架基于.NET。Windows Phone 7的所有应用程序都是托管应用程序,微软提供了两种应用程序框架:Sliver Light和XNA,并且建议开发者使用Sliver Light来开发基于事件的应用程序,使用XNA开发游戏。Sliver Light提供了一个基于.NET的运行环境,包括丰富的用户界面、多媒体、动画制作,以及网络访问功能。它使用扩展的应用程序标记语言(XAML)定义用户界面,使用.NET语言来实现程序逻辑。XNA主要应用在微软的Xbox、Windows操作系统和Windows Phone 7上。XNA为游戏开发人员提供了一个基础平台,使得开发者能够创建跨平台的游戏。
2.1.3 应用程序上架过程
Android应用程序商店Google Play是谷歌为Android设备开发的在线应用程序商店,开发者上传到Google Play商店的应用要通过Google Play系统内置的云检查机制确保安全。但是终究Android是一个开放式的系统,云安全检查并不能完全规避应用的风险。Android用户可以通过不同的应用程序市场(如安卓市场、91手机助手和360手机助手等)安装Android App。
苹果公司在线软件商店App Store是第一家移动应用程序商店,用户可以通过购买收费项目或者免费项目,从商店中直接下载应用程序到移动设备中。对于App应用程序提供商,开发者首先需要在苹果在线服务网站注册开发者发布证书,标准版计划每年99美元,企业版计划每年299美元,注册的审核过程也需要一段时间。苹果公司对应用程序的审核较为严苛,每一个iOS的应用程序都需要通过一组政策验证,包括内容政策、法律政策和功能性政策,应用的审核过程也需要数天或者几个星期的时间,所以在开发iOS应用的时候,考虑到发布周期及审核风险,开发者应注意合理安排时间。此外,iOS用户也可以通过不同的应用程序市场(如兔子助手、XY苹果助手和果粉助手等)或其他软件源安装iOS App。
Windows Phone提供了一个应用程序商店Market place来供Windows Phone应用程序的上架销售,用户可在移动设备上浏览应用程序商店,下载免费的软件或者购买付费软件[3]。对于App应用程序提供商,开发者想要创建并发布Windows Phone的应用程序需要支付99美元注册并获得一个微软应用程序商店开发者账户。微软对应用的审核需要验证软件的应用程序包是否符合应用程序内容发布准则,验证通过后,还会对软件在真实设备上的稳定性和性能策略进行测试,测试通过后才能发布在微软应用程序商店里。
展开
汤国安 教授
国家高等学校教学名师