`
butter
  • 浏览: 124662 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

移动跨平台应用开发技术综述

 
阅读更多

1.     背景

目前市场上主流的移动操作系统,包括iOSAndroidwebOSSymbianBlackBerry等。如果没有统一的操作系统,开发程序就是一件异常麻烦的事情。

因为每一种手机平台都有自己的SDK,它们需要使用不同语言来进行开发,你可能不得不需要56个代码仓库来管理不同设备上的代码,而且需要不同设备的开发人员来开发维护这些仓库,你还不得不装上各个设备的SDK,设置好路径和各种配置信息,来编译不同设备上的应用包。

因此,在移动操作系统已成诸侯割据之势的今天,迫切需要一种真正的跨平台技术。

目前,开发移动程序框架选择很多,从Web App,到PhoneGapTitaniumMonoTouch,再到Native App。我们认为,可以从以下几方面对这些技术进行比较:

A.       兼容性。能否真正written once, run everywhere。是真正跨平台,还是伪跨平台。

B.       标准化。是否采用国际通用技术实现,是否被不同操作系统完美支持,是否具有较低的开发成本。

C.       性能。能否适应当前主流手机配置。

2.     主流技术简介

2.1 PhoneGap

兼容性:★★★★★    标准化:★★★★★    性能:★★☆☆☆

         Phonegap采用W3C标准,以HTML5 +CSS3 + JAVASCRIPT作为开发工具。通过JAVASCRIPT封装接口访问移动OS底层API,比如GPS定位、重力感应、短信等,以web app的形式开发业务逻辑,并通过WebView control作为运行时环境,使其作为native app部署到不同移动OS上。

目前phonegap完美支持iOSAndroidwebOSSymbianBlackBerrywindowsmobile等六种操作系统。同时,Phonegap是免费开源的。

利用phonegap进行跨平台开发,可以有如下几种方式:

A.       编写纯粹的web app,利用phonegap build云端工具转换成各同OS的安装包。这种方式可以完美实现written once, run everywhere。但是,在纯粹的web app中,难以获得OS的底层支持,比如GPS定位、重力感应、短信等。如果不需要这些服务,这种开发方式可谓快捷方便。

B.       phonegap作为插件支持。如phonegapget started所述,仍然是利用Xcode开发iOS程序,利用Eclipse开发Android程序,phonegap只是作为开发project的第三方插件,因为这些project本身也是支持一些HTMLJAVASCRIPT的。开发时,利用HTML5+ CSS3 + JAVASCRIPT编写业务逻辑,并通过phonegap封装过的系统JS接口,调用GPS定位、重力感应等服务。个人估计,在不同移动OS间迁移这些project,可以省去90%的代码量。

C.       高端应用,比如3D游戏、多媒体、动画应用。不建议使用phonegap,实际上,所有的跨平台技术都会带来这样那样的问题,虽然理论上也可以开发一些高端应用,但其表现力跟native app是完全无法相提并论的。

Phonegap的最大缺点,运行速度慢,UI反应延时。在HTC G3 528MHz cpu下测试,一个简单的Form提交,速度让人无法接受。

2.2 MonoTouch

兼容性:★★☆☆☆    标准化:★★★★☆    性能:★★★★☆

Mono项目由Novell公司主持,致力于创建一系列符合标准ECMA (Ecma-334Ecma-335).Net 工具,包括C #编译器和CL执行平台。与微软的.Net不同,Mono项目不仅可以运行于Windows系统内,还可以运行于LinuxFreeBSDUnixMac OS XSolaris

         MonoTouchmono的第一个商业版本,是收费软件。MonoTouch最初设计时并没有考虑到跨平台,而是仅仅为iPhone设计的,目前MonoTouch已经更新到4.0版本,而后推出的MonoTouch for Android刚刚发布1.0版本。

包含在MonoTouch中的主要组件是:

l  MonoTouch.dll,访问iPhone原生APIC#互操作程序集(基础类、QuartzCoreAnimationCoreLocationMapKitAddressbookAudioToolboxAVFoundationStoreKitOpenGL/OpenAL)。

l  命令行SDK,用来编译C#代码和其他CIL语言代码,让它们可运行于iPhone模拟器或iPhone/iPodTouch设备中。

l  Mono运行时的商业许可(让你的代码可以使用Mono运行时的静态连接引擎)。

l  MonoDevelop插件,让iPhone开发更加简单,并集成了Interface Builder以方便创建GUI应用程序。

从上我们可以看出:

A.       MonoTouch采用C#作为主要编程语言,通过运行时SDK保证其运行在不同平台上。类似JAVA JRE

B.       MonoTouch提供一个适配器层,使得开发人员能在程序中使用所有的标准iPhone控件。另外还提供一些原生iPhone API的包装函数库,如访问位置(LocationGPS)、加速计、地址簿等的函数。

C.       开发方式:大部分非UI方面的.NET 3.5功能依旧可用;而UI则需要使用苹果的Interface Builder(界面创建器,IB)应用程序来创建。程序员还是必须使用Mac来进行开发。

D.       MonoTouch开发的程序会体积稍大,因为集成了运行时SDK,大约大5M,压缩后3M

MonoTouch for Android暂未研究,原理应该类似。

2.3 Titanium

兼容性:★★★★☆    标准化:★★★★★    性能:★★★☆☆

Titanium的原理和phonegap类似,都是利用JAVASCRIPT封装接口访问移动OS底层API,比如GPS定位、重力感应、短信等,以web app的形式开发业务逻辑,并通过WebView control作为运行时环境,使其作为native app部署到不同移动OS上。

         Titaniumphonegap的不同之处主要有以下几点:

A.       UI控件。Phonegap没有提供丰富的UI控件,如果要开发效果华丽的组件及特效,需要额外的web框架支持,比如sencha touchjQuery mobile等。而Titanium本身就提供了一些UI API,使得直接用Titanium编写的程序也具有一定美化效果。

B.       跨平台。上文提到,Phonegap支持六种主流移动OS,而Titanium目前只支持iOSAndroid

C.       性能。暂未测试,但是Phonegap + sencha touch效果实在太差,Titanium应该会好一点。

2.4 Rhodes

 to be continued...

分享到:
评论

相关推荐

    混合移动APP跨平台混合开发综述.pdf

    混合移动APP跨平台混合开发综述 混合移动APP跨平台混合开发综述.pdf文章总结了当前混合移动APP跨平台混合开发的概况,介绍了传统移动APP开发的缺陷,以及混合开发技术的原理和模式。该文研究了Cordova框架下的APP...

    基于Android平台的移动增强现实技术综述.pdf

    另外,Unity 3D引擎是一个强大的跨平台开发工具,尤其适合创建复杂的3D AR场景。 尽管目前AR技术在Android上的应用比例相对较低,主要是因为其计算需求高,实现复杂。但随着硬件性能的持续提升和软件优化,这一状况...

    云计算综述与移动云计算的应用研究

    ### 云计算综述与移动云计算的应用研究 #### 一、云计算概述 云计算作为一种新兴的信息通信技术(ICT)模式,自2008年以来受到了广泛关注。本文通过对云计算发展概况的介绍,探讨了其基本概念和“端”—“管”—...

    基于Android的应用软件的综述

    Android的最大特点是开放性和免费性,这使得开发者能够更容易地参与到应用开发中来。此外,Android对3G网络的良好支持也使其在网络应用方面具有明显优势。 #### 三、Android应用系统分类 目前市场上的Android应用...

    BlackBerry MDS Studio技术综述

    ### BlackBerry MDS Studio技术综述 #### 一、概述 BlackBerry MDS Studio是一款由Research In Motion(RIM)公司研发的专业开发工具,主要用于构建基于BlackBerry平台的企业级应用程序。该版本为V4.1,提供了更为...

    ArcGIS二次开发综述_王飞.pdf

    随着云计算、移动计算的兴起以及大数据的广泛运用,传统开发方式的不足也日益显现,如无法跨平台使用、开发难度大、性能较低、难以利用云计算资源等问题。 在新的技术背景下,ArcGIS的二次开发方向正逐步转向具有...

    移动平台GPU通用计算研究综述.pdf

    例如,OpenCL作为一种跨平台的并行计算标准,被广泛应用于移动设备,使得开发者能够利用GPU进行高性能计算,无论是服务端、桌面系统还是手机设备,都能实现代码的高效编写。 OpenCL提供了统一的编程环境,允许软件...

    JAVA手机游戏设计文献综述

    虽然随着技术的进步,其他编程语言和技术框架也在不断涌现,但Java凭借其成熟的技术体系、丰富的社区资源以及强大的跨平台能力,仍然在移动游戏开发中占据一席之地。未来,随着技术的不断发展,Java在移动游戏开发...

    云虚拟化平台可信证明技术研究综述.docx

    ### 云虚拟化平台可信证明技术研究综述 #### 一、引言 近年来,随着互联网的迅猛发展和数据量的急剧增加,云计算以其高效、低成本的特点在全球范围内迅速普及。各大科技巨头,如Amazon、Google、阿里巴巴、华为等...

    基于 APP 技术的乡村生态旅游平台的研究与应用.pdf

    然而,本文选择使用WebApp技术,它能够在各种移动设备的浏览器上运行,只需要一次开发,就能通过HTML、JavaScript和Python等技术实现跨平台兼容,降低了整体的开发成本,并提高了运行效率。 本文的研究内容主要包括...

    基于HTML5的跨平台数字出版技术研究

    HTML5技术的发展为跨平台移动应用开发提供了一条更加高效的实现路径。随着HTML5技术的成熟,业界对于跨平台移动开发框架的关注度也日益增加。国内外学者提出了多种不同的开发框架,这些框架极大地提高了开发效率。 ...

    移动GIS文献综述PPT课件.pptx

    在开发平台上,移动GIS通常需要跨平台支持,例如苹果的iOS、谷歌的Android和微软的Windows Phone。开发者使用Xcode、Eclipse、VS2012等工具,结合ObjectC、Java、SilverLight等语言进行开发。这些平台都提供了类似的...

    计算机取证技术综述文档

    ### 计算机取证技术综述 #### 一、计算机取证背景与概念 随着信息技术的飞速发展,计算机与互联网已经深深地融入到了社会生活的各个方面,包括政治、经济、文化和日常生活中。这一变化不仅极大地促进了信息的传播...

    移动App性能评测与优化

    3. **Firebase Performance Monitoring**:Google提供的跨平台解决方案,监测App性能并提供数据分析。 4. **Systrace**:用于分析Android系统的系统级性能,揭示App与操作系统交互的细节。 5. **Battery Historian**...

    环保物联网技术应用研究综述.zip

    4.2 协同治理:物联网技术将促进跨部门、跨地域的环境数据共享,推动协同环保治理。 4.3 绿色低碳:环保物联网将助力绿色能源的开发和利用,促进社会的低碳转型。 4.4 公众参与:通过移动应用等渠道,公众可以实时...

    Android开发文献

    最后,这部分可能涵盖跨平台开发、混合应用(如React Native或Flutter)、移动支付集成、游戏开发等更广泛的Android应用开发实践。 通过深入阅读和理解这些文献,开发者可以全面掌握Android开发的核心概念和技术,...

    基于H5的微信开发及实现三稿.doc

    1. **H5微信开发**:HTML5是新一代的网页标准,提供了许多增强用户体验的新特性,如离线存储、多媒体支持、地理定位等,使其成为微信小程序和轻应用开发的首选技术。微信开发通常涉及到微信开发者工具的使用,通过...

    软件工程专业综述.pdf

    9. Unity3D:Unity3D是一个跨平台的游戏引擎,支持2D和3D游戏的开发,广泛应用于独立游戏开发和一些商业游戏的开发中。 10. 3D和2D:3D指三维空间,用于描述具有宽度、高度和深度的对象和环境;2D指二维空间,通常...

    空天通信网络关键技术综述.docx

    【空天通信网络关键技术综述】 随着信息化社会的飞速发展,无线通信体系正在经历深刻的变革,以适应不断提高的“4A”(Anytime、Anywhere、Anyone、Anything)通信需求。这种需求导致业务数据量呈指数级增长,要求...

Global site tag (gtag.js) - Google Analytics