论文部分内容阅读
【摘 要】随着移动互联网的快速发展,海量的移动应用成为移动互联网的主要入口,移动互联网己经发展到了3G网络和智能手机平台紧密结合的时代。移动应用开发模式大体可分为原生应用开发模式,Web应用开发模式和跨平台Hybrid应用开发模式,跨平台的移动应用开发技术弥补了原生应用在系统间移植时周期长、功能变化需升级的短板,达到了原生应用的用户体验。本文从跨平台角度出发,介绍了移动应用的开发模式,阐述了一个典型的移动应用开发框架案例,重点从开发便利性,规范性的角度分析了框架的特点,并对框架的发展趋势做了进一步的展望。
【关键词】移动互联网;跨平台;移动应用;开发框架、移动应用开发的背景现状
1.1移动互联网的发展
随着智能手机和其他移动设备的普及,移动互联网快速发展,海量的移动应用成了移动互联网的主要入口。据估计到2016年,全球将会有100亿部联网的移动设备,智能手机的网络流量将会是今天的50倍,而更多的移动设备也意味着更多的移动应用。同时,全球移动应用规模也在急剧扩大,手机制造商、电信运营商和互联网服务提供商等纷纷推出自己的移动应用商店,移动应用已经成为移动互联网发展的一种新模式。其中苹果App Store成功创造了移动互联网应用商业模式,激发出了广大开发者进行移动互联网应用创作的极大热情。
当前,移动互联网己经发展到了3G网络和智能手机平台相结合的时代,这就使得人们对移动应用的个性化要求越来越高,也给各大厂商和个人移动互联网掘金者带来了无限的商机,但是他们首先不得不面对的就是手机平台之间的互不兼容,针对不同的手机平台都不得不开发和维护不同的代码,这样就大大提高了企业和个人的开发成本和维护成本,因此,通过研究和设计手机跨平台开发的方案来解决各自不同手机平台之间的互不兼容性,就显得尤为重要,从而降低企业的开发成本和维护成本,同时也减低了移动互联网的准入门槛,使得更多的人参与到移动互联网发展的大潮中来,加快移动互联网的发展。
1.2 移动平台的多样性
移动应用系统平台需要有软件来支撑,如果把移动互联网比作新互联时代的骨骼,那么运行于移动平台之上的应用软件就好比血肉一样,是真正体现其所具备价值的载体。
当前,移动平台市场具备了多样性,例如:谷歌公司的Android平台、苹果公司的iOS、诺基亚的Symbian以及传统操作系统巨头微软的Windows mobile,而且这些平台的开发语言、开发方式和构架等基本都不兼容,这就使得同一个移动应用需要在不同的平台上使用着不同的语言和开发工具,开发着同一个应用,而且在需求修改和测试时,都需要做大规模的代码修改与回归测试,一款移动互联网应用若要覆盖多种移动终端平台,开发者需要花费大量的时间和精力进行跨平台的开发移植工作,导致应用开发周期长、开发门槛高等问题。另外,从经济角度来说,要同时开发和维护多个平台的应用程序,将花费企业巨大的人力和时间成本。为了解决上述问题,跨平台的移动应用开发技术逐渐地引起了人们的关注。
1.3 移动应用开发模式
目前,移动应用开发模式大体可分为原生应用开发模式,Web应用开发模式和跨平台Hybrid應用开发模式。这3种不同的开发模式,各自具有自身的优缺点,因而也各自有着不同的应用场景。原生应用开发模式主要依托Android、iOS、Windows Phone等操作系统层面提供的原生GUI以及各类操作底层硬件设备的开发接口进行开发。Web应用开发模式运行环境需要浏览器或浏览器模块(如Webview)的支持。跨平台应用开发模式能够弥补原生应用在系统间移植时周期长、功能变化需升级的短板,也能达到原生应用的用户体验。
1.4 原生应用开发模式
原生应用开发模式也称Native 开发模式,开发者需要根据不同的操作系统构建开发环境、学习不同的开发语言及适应不同的开发工具。原生应用主要包括:Android、iOS、Windows Phone原生应用开发。
(1)Android原生应用
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
(2)iOS原生应用
苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。
(3)Windows Phone原生应用
Windows8是由微软公司于2012年10月26日正式推出,具有革命性变化的操作系统。系统独特的开始界面和触控式交互系统,旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境。Windows 8支持来自Intel、AMD和ARM的芯片架构,被应用于个人电脑和平板电脑上。
Native App 的优点是可以完全利用系统的API 和平台特性,无论是用户体验或交互界面,都是最优质的。缺点是由于开发技术不同,如果要覆盖多个平台,则要针对每个平台独立开发,无跨平台特性。
1.5 Web 应用开发模式
超文本链接标记语言(HTML5)技术的兴起给Web APP 注入了新的生机。由于浏览器作为移动终端的基本组件以及浏览器对Web 技术的良好支持能力,熟悉Web 开发技术的人才资源丰富,使得Web APP 具有开发难度小、成本低、周期短、使用方便、维护简单等特点,非常适合企业移动信息化的需求。特别是上一轮的企业信息化在PC 端大多选择了浏览器/服务器(B/S)架构,这样就能和Web APP 通过手机浏览器访问的方式无缝过渡,重用企业现有资产。对于性能指标不苛刻的移动应用,Web APP 完全可以采用Web 技术实现,但是对于功能复杂,实时性能要求高的应用,Web APP 还无法达到Native APP 的用户体验。 Web App 最突出的优势在于,它支持多种平台,且开发成本低。缺点是基于浏览器的应用无法调用系统API 来实现一些高级功能,也不适合高性能要求的场合。
1.6 跨平台Hybrid应用开发模式
Hybrid APP 是一种结合Native 开发和Web 开发模式的混合模式,通常基于跨平台移动应用框架进行开发。这些引擎框架一般使用HTML5 和JavaScript 作为编程语言,调用框架封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5 和JavaScript 只是作为一种解析语言,真正调用的都是类似Native APP 的经过封装的底层操作系统(OS)或设备的能力,这是Hybrid APP 和Web APP 的最大区别。
企业移动应用采用Hybrid APP 技术开发,一方面开发简单,另外一方面可以形成一种开发的标准。企业封装大量的原生插件(Native Plugin),如支付功能插件,供JavaScript 調用,并且可以在今后的项目中尽可能地复用,从而大幅降低开发时间和成本。Hybrid APP 的标准化给企业移动应用开发、维护、更新都带来了极高的便捷性。
这三种开发方式各有优劣,选择一种合适的方法取决于企业的具体要求和诸多因素,比如预算、时间表、IT 资源、目标市场、所需的应用程序功能等多方面。若要兼顾企业的要求、预算、产品上市时间等方面的限制,混合型应用无疑是快速有效的方案。基于HTML5 低成本跨平台开发优势又兼具Native App 特质的Hybrid App,大幅的降低了移动应用的开发成本,且可以通过现有应用商店模式发行,因此Hybrid App 在相当长一段时间内是全面解决跨平台问题的最佳方案。
2、基于跨平台移动应用统一开发框架
Hybrid App是Native 开发和Web 开发两种模式混合以后的产物,并且尽可能继承了双方的优势。它让为数众多的Web 开发人员可以几乎零成本转型成移动应用开发者,相同的代码只需针对不同平台进行编译就能实现多平台的分发,大大提高了多平台开发的效率。Hybrid App 总体特性更接近Native App,也兼具了Web App 使用HTML5 跨平台开发低成本的优势,但开发成本和难度比Native App 要小很多,在许多情况下,它集两者之所长。
跨平台的开发框架,采用混合Hybrid架构,利用Html5+CSS3+JS即可开发出适配iOS和Android的应用程序。跨平台开发工具集成了整套的UI框架、调试器、模拟器。只需要安装到操作系统中,开发者就能够创建应用,编写应用代码,启动模拟器,调试代码,乃至最后生成iOS,Android的安装包等。
2.1 API调用
跨平台移动应用统一开发框架主要用于提供跨平台API,将一些常用的接口封装在一起,让开发者不必关心各终端平台的系统API和原生开发语言,直接调用API接口即可,通过统一开发就可以完成跨平台混合应用的开发。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。为了对外提供统一的API 接口,需要对开发者提供开放统一的API接口环境,来帮助开发者调用相关的功能和资源,其中包括:推送、摄像头、传感器、LBS、二维码、文件读写、网络连接、上传下载、短信、彩信、电话、邮件、图片、音频、视频、压缩、原生控件元素等核心功能的API调用。
下面是一个下载文件功能的API调用接口。
/**
* 下载文件
*@String url_update 下载路径
*@String name 保存的文件名及格式例:file.jpg
*@funciton cb 下载成功后的回调函数
**/
var did = 1000;
function down_file(url_update,name,cb){
did++;
if(isAndroid)
var saveUpdate = "/sdcard/download/"+name;
else
var saveUpdate = "wgt://data/"+name;
$toast("正在加载中...");
uexDownloaderMgr.onStatus = function(opCode,fileSize,percent,status){
switch(status) {
case 0:
logs(opCode+"=="+percent);
var str = '下载进度:'+percent+'%';
if(fileSize==-1) str = '下载中,请稍候...';
uexWindow.toast('1','5', str,'');
break;
case 1:
uexDownloaderMgr.closeDownloader(opCode);
uexWindow.closeToast();
cb(saveUpdate);
break;
case 2:
uexDownloaderMgr.closeDownloader(opCode);
break;; }
}
uexDownloaderMgr.cbCreateDownloader = function(opCode,dataType,data){
if(data == 0){
uexDownloaderMgr.download(opCode,url_update,saveUpdate,'0');
}else{
alert("创建失败");
}
}
uexFileMgr.cbIsFileExistByPath=function(opId,dataType,data){
if(isDefine(data)){
cb(saveUpdate);
}else{
did++;
uexDownloaderMgr.createDownloader(did);
}
}
uexFileMgr.isFileExistByPath(did,saveUpdate);
}
2.2 組件调用
移动应用统一开发框架面向应用开发着提供一套跨平台公共组件,涵盖了移动应用所需要的大部分功能,消除不同移动平台的各种差异性。应用开发人员把这些组件封装在一起,不需要区分终端设备是Android系统还是iOS系统,只需要简单调用这些组件,进行集成,就可以开发出一系列的应用,开发人员也可以根据自己的需要灵活定制符合自己要求的组件。系统封装好了移动应用开发所需要的大部分组件,能够基本上满足移动应用开发者的开发需求。常用的一些组件包括音乐播放插件,百度地图插件,折线图功能插件,打电话功能插件,照相机功能插件,剪切板功能插件,联系人功能插件,时间日期选择功能插件,阅读器功能插件,下载管理功能插件等等。
2.3 移动应用开发工具
跨平台统一开发框架通过提供跨平台的API,让开发者不必关心各终端平台的系统API和原生开发语言,通过Web开发就可以完成跨平台混合应用的开发。国内常用的跨平台开发框架包括phoneGap、WAC Widget等。
以下是南方电网公司初步研发的典型跨平台移动应用统一开发框架的案例,针对Android、iOS等终端系统的移动应用,都能够在系统上面进行开发。进入系统以后,开发人员可以根据自己的要求,新建自己的开发项目。新建项目时可以调用系统中的应用模板,如下图所示。应用模板可以是系统自带的,也可以是开发人员自己创建的新模板。
开发人员新建开发项目以后,就进入了移动应用的开发界面,如下图所示,左边是项目资源管理器,右边是具体的编辑页面,在里面可以按照具体框架编辑源代码,实现各项应用功能。界面的底部是控制台,开发人员在编辑源代码的同时,可以实时对编辑的代码进行检查、诊断。
系统中附带有应用开发模拟器,如下图所示。在开发模拟器中,开发人员可以预先模拟移动应用的某些功能,如设备旋转模拟,方向传感器模拟,温度传感器模拟,光线传感器模拟,GPS模拟等。此外,模拟器还可以根据终端设备的型号,选择不同的分辨率,从而达到最佳的模拟效果。
3、移动应用统一开发框架特点
移动应用统一开发框架的设计与实现是为了适应移动应用开发以及跨平台运行的需要,提高移动应用开发的效率及可扩展性。框架采用组件的设计思想,既是一个开发框架,又是开发人员在实际开发中的一个工具箱。
3.1.快速调用,多组件集成
框架集成了多个用于移动应用的组件,用于支撑快速开发,应用组件是提供给其他应用调用的公共组件。框架为了缩短应用开发周期,以及规范化组件实现方式,建设了此类组件,供应用开发商集成使用。
当前移动应用开发过程中面临各种问题,其中最突出的就是移动应用没有一套统一的UI界面,界面显示五花八门;移动应用常用的公共功能没有封装成插件,造成功能累赘重复开发,故本框架提供了一套扩展插件供开发者使用,开发者只需要简单集成该插件便能使用其功能,移动应用开发者可以根据自己的需求灵活定制符合自己要求的插件,如:移动GIS功能、统计分析功能、单点登录功能等。
3.2 一次开发,多平台应用
移动应用统一开发框架所开发出来的应用具有“一次开发,多平台应用”的特点,移动应用兼容iOS,安卓和wm等平台,高效便捷,减少了开发人员的学习曲线。
框架弥补了原生应用开发时系统间移植周期长、功能变化需升级的短板。首先,它让开发者通过一次性的应用代码编写,即可编译成多种类型终端平台上的应用程序,大大提高了多平台开发的效率,达到快速开发,快速上线,减少大量人力物力的效果。其次,它可让为数众多的应用开发人员以几乎零成本转型为移动应用开发者。另外,跨平台应用开发者可以自行进行系统API封装,调用任何期望的系统能力,这可以在很大程度上克服目前HTML5跨平台API匮乏的缺陷。
框架可以显著提高移动应用的开发效率,减少甚至避免混合应用开发中的原生开发的工作。在移动互联网应用开发中,跨平台开发比原生开发拥有更高的开发效率,显著降低开发成本。
3.3 源头入手,规范开发环境
移动应用统一开发框架从源头上规范了移动应用的开发环境,使移动应用具备典型的安全性。在移动互联网的大环境之下,安全问题无处不在,因此,要对战略合作的移动应用开发商的应用开发、产品引入等各方面和环节进行规范和约束,确保开发的应用符合移动应用管理要求,在功能、安全、友好性上满足用户的需求。如用户隐私的保密要求,界面以及界面UI规范要求,移动应用介绍、安装、卸载、升级要求,移动应用确保对智能终端的基本功能(如电话、短信等)无影响要求,灵活计费功能要求等。在开发过程中,应用需要明确规定机密数据范围以及可存放于移动设备的数据的范围,机密数据必须存储于固定加密空间中。
结论与展望
移动应用领域急需高性能、具有实用价值的跨平台快速开发的工具,来提高目前移动应用开发的效率,降低开发的准入门槛。基于跨平台移动应用统一开发框架的实现是移动互联网和手机跨平台开发的必然趋势,可以解决大多数的移动应用跨平台开发的需要,实现过程简单,易于定制和优化,容易理解和学习掌握,可帮助开发人员提高开发效率,简化代码管理和维护。相信在不远的将来,随着移动终端浏览器对HTML5标准支持度和运行效率的迅速提高,移动互联网应用跨平台开发技术将会获得迅猛发展,完全有可能替代原生应用开发技术,成为移动互联网应用开发的首要选择。
参考文献:
[1] 陈子涵,吴明晖,应晶.《基于MDA 的移动应用开发框架》 计算机工程,2011
[2] 杨勇,邝宇锋,魏骞《移动互联网终端应用开发技术》 中兴通讯技术,2013
[3]马友忠,孟小峰.《移动应用集成:框架、技术与挑战》 计算机学报,2013
[4]黄永慧,陈程凯.《HTML5在移动应用开发上的应用前景》 计算机科学与技术,2013
[5]施莹.《快速构建跨平台移动应用开发方案》 价值工程,2013
【关键词】移动互联网;跨平台;移动应用;开发框架、移动应用开发的背景现状
1.1移动互联网的发展
随着智能手机和其他移动设备的普及,移动互联网快速发展,海量的移动应用成了移动互联网的主要入口。据估计到2016年,全球将会有100亿部联网的移动设备,智能手机的网络流量将会是今天的50倍,而更多的移动设备也意味着更多的移动应用。同时,全球移动应用规模也在急剧扩大,手机制造商、电信运营商和互联网服务提供商等纷纷推出自己的移动应用商店,移动应用已经成为移动互联网发展的一种新模式。其中苹果App Store成功创造了移动互联网应用商业模式,激发出了广大开发者进行移动互联网应用创作的极大热情。
当前,移动互联网己经发展到了3G网络和智能手机平台相结合的时代,这就使得人们对移动应用的个性化要求越来越高,也给各大厂商和个人移动互联网掘金者带来了无限的商机,但是他们首先不得不面对的就是手机平台之间的互不兼容,针对不同的手机平台都不得不开发和维护不同的代码,这样就大大提高了企业和个人的开发成本和维护成本,因此,通过研究和设计手机跨平台开发的方案来解决各自不同手机平台之间的互不兼容性,就显得尤为重要,从而降低企业的开发成本和维护成本,同时也减低了移动互联网的准入门槛,使得更多的人参与到移动互联网发展的大潮中来,加快移动互联网的发展。
1.2 移动平台的多样性
移动应用系统平台需要有软件来支撑,如果把移动互联网比作新互联时代的骨骼,那么运行于移动平台之上的应用软件就好比血肉一样,是真正体现其所具备价值的载体。
当前,移动平台市场具备了多样性,例如:谷歌公司的Android平台、苹果公司的iOS、诺基亚的Symbian以及传统操作系统巨头微软的Windows mobile,而且这些平台的开发语言、开发方式和构架等基本都不兼容,这就使得同一个移动应用需要在不同的平台上使用着不同的语言和开发工具,开发着同一个应用,而且在需求修改和测试时,都需要做大规模的代码修改与回归测试,一款移动互联网应用若要覆盖多种移动终端平台,开发者需要花费大量的时间和精力进行跨平台的开发移植工作,导致应用开发周期长、开发门槛高等问题。另外,从经济角度来说,要同时开发和维护多个平台的应用程序,将花费企业巨大的人力和时间成本。为了解决上述问题,跨平台的移动应用开发技术逐渐地引起了人们的关注。
1.3 移动应用开发模式
目前,移动应用开发模式大体可分为原生应用开发模式,Web应用开发模式和跨平台Hybrid應用开发模式。这3种不同的开发模式,各自具有自身的优缺点,因而也各自有着不同的应用场景。原生应用开发模式主要依托Android、iOS、Windows Phone等操作系统层面提供的原生GUI以及各类操作底层硬件设备的开发接口进行开发。Web应用开发模式运行环境需要浏览器或浏览器模块(如Webview)的支持。跨平台应用开发模式能够弥补原生应用在系统间移植时周期长、功能变化需升级的短板,也能达到原生应用的用户体验。
1.4 原生应用开发模式
原生应用开发模式也称Native 开发模式,开发者需要根据不同的操作系统构建开发环境、学习不同的开发语言及适应不同的开发工具。原生应用主要包括:Android、iOS、Windows Phone原生应用开发。
(1)Android原生应用
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
(2)iOS原生应用
苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。
(3)Windows Phone原生应用
Windows8是由微软公司于2012年10月26日正式推出,具有革命性变化的操作系统。系统独特的开始界面和触控式交互系统,旨在让人们的日常电脑操作更加简单和快捷,为人们提供高效易行的工作环境。Windows 8支持来自Intel、AMD和ARM的芯片架构,被应用于个人电脑和平板电脑上。
Native App 的优点是可以完全利用系统的API 和平台特性,无论是用户体验或交互界面,都是最优质的。缺点是由于开发技术不同,如果要覆盖多个平台,则要针对每个平台独立开发,无跨平台特性。
1.5 Web 应用开发模式
超文本链接标记语言(HTML5)技术的兴起给Web APP 注入了新的生机。由于浏览器作为移动终端的基本组件以及浏览器对Web 技术的良好支持能力,熟悉Web 开发技术的人才资源丰富,使得Web APP 具有开发难度小、成本低、周期短、使用方便、维护简单等特点,非常适合企业移动信息化的需求。特别是上一轮的企业信息化在PC 端大多选择了浏览器/服务器(B/S)架构,这样就能和Web APP 通过手机浏览器访问的方式无缝过渡,重用企业现有资产。对于性能指标不苛刻的移动应用,Web APP 完全可以采用Web 技术实现,但是对于功能复杂,实时性能要求高的应用,Web APP 还无法达到Native APP 的用户体验。 Web App 最突出的优势在于,它支持多种平台,且开发成本低。缺点是基于浏览器的应用无法调用系统API 来实现一些高级功能,也不适合高性能要求的场合。
1.6 跨平台Hybrid应用开发模式
Hybrid APP 是一种结合Native 开发和Web 开发模式的混合模式,通常基于跨平台移动应用框架进行开发。这些引擎框架一般使用HTML5 和JavaScript 作为编程语言,调用框架封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5 和JavaScript 只是作为一种解析语言,真正调用的都是类似Native APP 的经过封装的底层操作系统(OS)或设备的能力,这是Hybrid APP 和Web APP 的最大区别。
企业移动应用采用Hybrid APP 技术开发,一方面开发简单,另外一方面可以形成一种开发的标准。企业封装大量的原生插件(Native Plugin),如支付功能插件,供JavaScript 調用,并且可以在今后的项目中尽可能地复用,从而大幅降低开发时间和成本。Hybrid APP 的标准化给企业移动应用开发、维护、更新都带来了极高的便捷性。
这三种开发方式各有优劣,选择一种合适的方法取决于企业的具体要求和诸多因素,比如预算、时间表、IT 资源、目标市场、所需的应用程序功能等多方面。若要兼顾企业的要求、预算、产品上市时间等方面的限制,混合型应用无疑是快速有效的方案。基于HTML5 低成本跨平台开发优势又兼具Native App 特质的Hybrid App,大幅的降低了移动应用的开发成本,且可以通过现有应用商店模式发行,因此Hybrid App 在相当长一段时间内是全面解决跨平台问题的最佳方案。
2、基于跨平台移动应用统一开发框架
Hybrid App是Native 开发和Web 开发两种模式混合以后的产物,并且尽可能继承了双方的优势。它让为数众多的Web 开发人员可以几乎零成本转型成移动应用开发者,相同的代码只需针对不同平台进行编译就能实现多平台的分发,大大提高了多平台开发的效率。Hybrid App 总体特性更接近Native App,也兼具了Web App 使用HTML5 跨平台开发低成本的优势,但开发成本和难度比Native App 要小很多,在许多情况下,它集两者之所长。
跨平台的开发框架,采用混合Hybrid架构,利用Html5+CSS3+JS即可开发出适配iOS和Android的应用程序。跨平台开发工具集成了整套的UI框架、调试器、模拟器。只需要安装到操作系统中,开发者就能够创建应用,编写应用代码,启动模拟器,调试代码,乃至最后生成iOS,Android的安装包等。
2.1 API调用
跨平台移动应用统一开发框架主要用于提供跨平台API,将一些常用的接口封装在一起,让开发者不必关心各终端平台的系统API和原生开发语言,直接调用API接口即可,通过统一开发就可以完成跨平台混合应用的开发。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。为了对外提供统一的API 接口,需要对开发者提供开放统一的API接口环境,来帮助开发者调用相关的功能和资源,其中包括:推送、摄像头、传感器、LBS、二维码、文件读写、网络连接、上传下载、短信、彩信、电话、邮件、图片、音频、视频、压缩、原生控件元素等核心功能的API调用。
下面是一个下载文件功能的API调用接口。
/**
* 下载文件
*@String url_update 下载路径
*@String name 保存的文件名及格式例:file.jpg
*@funciton cb 下载成功后的回调函数
**/
var did = 1000;
function down_file(url_update,name,cb){
did++;
if(isAndroid)
var saveUpdate = "/sdcard/download/"+name;
else
var saveUpdate = "wgt://data/"+name;
$toast("正在加载中...");
uexDownloaderMgr.onStatus = function(opCode,fileSize,percent,status){
switch(status) {
case 0:
logs(opCode+"=="+percent);
var str = '下载进度:'+percent+'%';
if(fileSize==-1) str = '下载中,请稍候...';
uexWindow.toast('1','5', str,'');
break;
case 1:
uexDownloaderMgr.closeDownloader(opCode);
uexWindow.closeToast();
cb(saveUpdate);
break;
case 2:
uexDownloaderMgr.closeDownloader(opCode);
break;; }
}
uexDownloaderMgr.cbCreateDownloader = function(opCode,dataType,data){
if(data == 0){
uexDownloaderMgr.download(opCode,url_update,saveUpdate,'0');
}else{
alert("创建失败");
}
}
uexFileMgr.cbIsFileExistByPath=function(opId,dataType,data){
if(isDefine(data)){
cb(saveUpdate);
}else{
did++;
uexDownloaderMgr.createDownloader(did);
}
}
uexFileMgr.isFileExistByPath(did,saveUpdate);
}
2.2 組件调用
移动应用统一开发框架面向应用开发着提供一套跨平台公共组件,涵盖了移动应用所需要的大部分功能,消除不同移动平台的各种差异性。应用开发人员把这些组件封装在一起,不需要区分终端设备是Android系统还是iOS系统,只需要简单调用这些组件,进行集成,就可以开发出一系列的应用,开发人员也可以根据自己的需要灵活定制符合自己要求的组件。系统封装好了移动应用开发所需要的大部分组件,能够基本上满足移动应用开发者的开发需求。常用的一些组件包括音乐播放插件,百度地图插件,折线图功能插件,打电话功能插件,照相机功能插件,剪切板功能插件,联系人功能插件,时间日期选择功能插件,阅读器功能插件,下载管理功能插件等等。
2.3 移动应用开发工具
跨平台统一开发框架通过提供跨平台的API,让开发者不必关心各终端平台的系统API和原生开发语言,通过Web开发就可以完成跨平台混合应用的开发。国内常用的跨平台开发框架包括phoneGap、WAC Widget等。
以下是南方电网公司初步研发的典型跨平台移动应用统一开发框架的案例,针对Android、iOS等终端系统的移动应用,都能够在系统上面进行开发。进入系统以后,开发人员可以根据自己的要求,新建自己的开发项目。新建项目时可以调用系统中的应用模板,如下图所示。应用模板可以是系统自带的,也可以是开发人员自己创建的新模板。
开发人员新建开发项目以后,就进入了移动应用的开发界面,如下图所示,左边是项目资源管理器,右边是具体的编辑页面,在里面可以按照具体框架编辑源代码,实现各项应用功能。界面的底部是控制台,开发人员在编辑源代码的同时,可以实时对编辑的代码进行检查、诊断。
系统中附带有应用开发模拟器,如下图所示。在开发模拟器中,开发人员可以预先模拟移动应用的某些功能,如设备旋转模拟,方向传感器模拟,温度传感器模拟,光线传感器模拟,GPS模拟等。此外,模拟器还可以根据终端设备的型号,选择不同的分辨率,从而达到最佳的模拟效果。
3、移动应用统一开发框架特点
移动应用统一开发框架的设计与实现是为了适应移动应用开发以及跨平台运行的需要,提高移动应用开发的效率及可扩展性。框架采用组件的设计思想,既是一个开发框架,又是开发人员在实际开发中的一个工具箱。
3.1.快速调用,多组件集成
框架集成了多个用于移动应用的组件,用于支撑快速开发,应用组件是提供给其他应用调用的公共组件。框架为了缩短应用开发周期,以及规范化组件实现方式,建设了此类组件,供应用开发商集成使用。
当前移动应用开发过程中面临各种问题,其中最突出的就是移动应用没有一套统一的UI界面,界面显示五花八门;移动应用常用的公共功能没有封装成插件,造成功能累赘重复开发,故本框架提供了一套扩展插件供开发者使用,开发者只需要简单集成该插件便能使用其功能,移动应用开发者可以根据自己的需求灵活定制符合自己要求的插件,如:移动GIS功能、统计分析功能、单点登录功能等。
3.2 一次开发,多平台应用
移动应用统一开发框架所开发出来的应用具有“一次开发,多平台应用”的特点,移动应用兼容iOS,安卓和wm等平台,高效便捷,减少了开发人员的学习曲线。
框架弥补了原生应用开发时系统间移植周期长、功能变化需升级的短板。首先,它让开发者通过一次性的应用代码编写,即可编译成多种类型终端平台上的应用程序,大大提高了多平台开发的效率,达到快速开发,快速上线,减少大量人力物力的效果。其次,它可让为数众多的应用开发人员以几乎零成本转型为移动应用开发者。另外,跨平台应用开发者可以自行进行系统API封装,调用任何期望的系统能力,这可以在很大程度上克服目前HTML5跨平台API匮乏的缺陷。
框架可以显著提高移动应用的开发效率,减少甚至避免混合应用开发中的原生开发的工作。在移动互联网应用开发中,跨平台开发比原生开发拥有更高的开发效率,显著降低开发成本。
3.3 源头入手,规范开发环境
移动应用统一开发框架从源头上规范了移动应用的开发环境,使移动应用具备典型的安全性。在移动互联网的大环境之下,安全问题无处不在,因此,要对战略合作的移动应用开发商的应用开发、产品引入等各方面和环节进行规范和约束,确保开发的应用符合移动应用管理要求,在功能、安全、友好性上满足用户的需求。如用户隐私的保密要求,界面以及界面UI规范要求,移动应用介绍、安装、卸载、升级要求,移动应用确保对智能终端的基本功能(如电话、短信等)无影响要求,灵活计费功能要求等。在开发过程中,应用需要明确规定机密数据范围以及可存放于移动设备的数据的范围,机密数据必须存储于固定加密空间中。
结论与展望
移动应用领域急需高性能、具有实用价值的跨平台快速开发的工具,来提高目前移动应用开发的效率,降低开发的准入门槛。基于跨平台移动应用统一开发框架的实现是移动互联网和手机跨平台开发的必然趋势,可以解决大多数的移动应用跨平台开发的需要,实现过程简单,易于定制和优化,容易理解和学习掌握,可帮助开发人员提高开发效率,简化代码管理和维护。相信在不远的将来,随着移动终端浏览器对HTML5标准支持度和运行效率的迅速提高,移动互联网应用跨平台开发技术将会获得迅猛发展,完全有可能替代原生应用开发技术,成为移动互联网应用开发的首要选择。
参考文献:
[1] 陈子涵,吴明晖,应晶.《基于MDA 的移动应用开发框架》 计算机工程,2011
[2] 杨勇,邝宇锋,魏骞《移动互联网终端应用开发技术》 中兴通讯技术,2013
[3]马友忠,孟小峰.《移动应用集成:框架、技术与挑战》 计算机学报,2013
[4]黄永慧,陈程凯.《HTML5在移动应用开发上的应用前景》 计算机科学与技术,2013
[5]施莹.《快速构建跨平台移动应用开发方案》 价值工程,2013