首 页 | 新 闻 | Symbian | Windows Mobile| J2ME | 下载中心 | 游戏策划 | 购书指南 | 移动开发视频教程
您现在的位置: 开发视界 >> 专家专栏 >> Leo >> 文章正文
使用Peroon实现移植
作者:Leo 译    文章来源:本站原创    更新时间:2006-7-13 18:01:31

理查德.波尔著

Peroon想令一个应用程序仅仅使用一个源代码就能分别在Series 60,UIQ和微软的掌上电脑上运行?不可能?对于Peroon来说,这一切并不是不可能。

 

在移动电话和无线领域,当数个相互竞争的操作系统的可用性已毋庸置疑地从确保终端用户最大价值的竞争中获益时,这对于开发者来说,意味着他们在面对一个令人进退两难的局面。

在这种情况下,为了获得最大数额的用户群,对一个应用程序来说,这意味着其应维持多类代码版本用于满足特殊的操作系统,数倍于源版本代码用于满足特殊的设备。对移动开发人员来说,单一源码可以应用在所有主流平台上是他们梦想的天堂。Java在很大程度上解决了这个问题,但是Java对这个问题的解决依赖于一个虚拟机,这意味着程序运行的性能总是要滞后于那些本地运行的程序。同时,Java也同时因在这些平台上所能获得的有限资源而收到限制。对于单一源码,多平台使用这个问题,有一些其他的解决方案,比如AppForge公司的Crossfire就使用了一个类似的技术,其采用Visual Basic做为应用程序的源语言。

 

然而,对于C++的开发者来说,至少到目前为止,为他们的应用程序创建多语言版本是无可避免的选择。

 

.阿米尔和安纳托利.卡尔德斯于2000年确定了一个他们认为是针对这个问题的解决方案。在从技术和经济两个方面考虑这个问题之后,丹和安纳托利创建了Peroon

 

Peroon的首席技术官,安纳托利说:“当初,我们考虑了4种关键的平台,Psion,嵌入式领域迅速发展的微软,PalmLinux。然而当时的情况是,Palm因为单线程,单进程操作系统以及不能为时兴的应用程序提供资源而显得落伍;Linux可以明确地看出来将在移动设备领域获得使用,但它的市场却不清楚。正因为如此,我们保留了SymbianMicrosoft做为我们起步时的平台。”当确定了他们技术所要应用的平台之后,他们选用了2000年时,商业上自然的候选平台Microsoft做为起始平台。“选用Microsoft做为基本平台并将其移植到Symbian上在技术上是非常困难的”,安纳托利说道,“Microsoft操作系统拥有大量繁杂的API,使之无法很好的组织起来。而且,Microsoft的掌上电脑版本并不是真正为受限设备所设计的。实事上,所有在其他平台上运行的设备都比在Symbian操作系统上运行的设备所受的束缚更小一些。”最终,Symbian平台上的代码成为了源头代码,用于将其移植定位到其他操作系统上。“在确定了计划之后,仅仅数月我们就拿出了初始产品,其将Symbian平台上帝的代码移植到Microsoft上。我们还将不懈努力。”,安纳托利说道。

 

Peroon 现在拥有两种工具:E2WE2SE2W从是SymibanMicrosoft移植工具的最新版本,S2S是从Series 60代码到UIQ的移植工具。目前Peroon的主管,丹指出,“Peroon同时也能评测一个从Palm进行移植的工具。同时,还有数个产品正在开发中。”

 

所有Peroon产品上都基于一种被称为DIMA的代码技术。在E2W这个版本里,DIMASymbian API翻译为对应Microsoft平台上的API。“我们的技术不是运行在掌上电脑上用来激发Symbian行为的虚拟机。”,安纳托利说道,“它是一个内置于应用程序的层,使用这个层能将Symbian上的API功能性的映射到Windows C相关 API。我们称之为直接映射技术。”

安纳托利给出了一个简单的例子,将用于Symbian 操作系统的RFile::Open()映射为微软的CreateFile()。安纳托利:“当然,大多数情况下,我们需要直接面对的是找一些方法去实现Symbian操作系统的资源,类似活动对象,客户端服务器端框架和用户界面。”Peroon其他重要的特性是Peroon宣称其决不会因移植代码而影响性能。安纳托利说:“我不认为存在这种情况,即由于使用了移植而使得程序的性能受到影响。”这种技术确实增加了源代码的规模不过这种增加依从于被移植的程序本身,小到50kb的代码增量,大到对于更复杂的应用程序350kb的增量都是可能的。另外一个重要的特性是,由于映射是发生在API上,所以每个应用程序都能保持原本的外观和体验。安纳托利:“如果一个程序员在Symbian上执行一个列表控制操作时看到的是Symbian上的列表控制效果,那么在Windows 上其看到的就是Windows上的列表控制效果。”对于用户来说,应用程序在各处运行时,都会像运行一个本地掌上电脑程序一样,用户将不会知道程序是由在Symbian上运行的程序移植而来。

 

同样的,由于该技术映射API,当应用程序编译时,这意味着开发者可以创建一个单独的应用程序包,仅仅在安装时添加一个小型的DLL文件而不必附加组件用于使程序安装在目标设备上。

 

虽然使用S2S的时候,很多API相同,活动对象和客户端服务器端框架共有,S2S也遵循同一原理。所以S2S的很多精力都用在了将S60系列的用户界面转到UIQ下的用户界面。安纳托利说:“S60系列在屏幕底部有一个命令按钮组工具条(CBA)并且有一个用于转换外观的标签组。除了菜单在屏幕的顶端转换外观的图标在屏幕底部,UIQ拥有相同的功能。”

使用S2S时,当开发者定义了一个命令按钮组工具条时,我们将其映射到UIQ的菜单条上。当在S60系列机上使用标签组时,我们将其映射到UIQ的图标上。所以,如果开发者使用标准的API用来创建S60系列的应用程序时,S2S将创建一个拥有正确UIQ外观和使用感受的UIQ应用程序。

 

一开始,安纳托利就承认Peroon技术无法消除所有在移植程序时所需要做的工作。“如果一个开发人员使用绝对屏幕坐标,那将应用程序从176*208像素屏幕大小的S60系列转到204*320像素屏幕大小的UIQ上就会得到不对应的效果”,安纳托利说,“所以在这种情况下,开发人员可能需要使用预编译#ifdef用来创建针对S60系列或UIQ的特定代码,用来使程序在两个接口都可以使用。但最重要的目标是只用提供一份源代码并且其中的绝大多数不会被修改。”S2S类似于E2W,其使用了一些额外的头文件和库文件用来支持UIQ

 

目前Peroon在做移植服务的时候仅提供了E2WS2S,其基本流程就是客户交付一个S60系列的源代码然后Peroon返回一个Windows下或UIQ下的移植版本程序。Peroon的客户之一就是IntuwaveIntuwave的首席执行官阿尔瑞.高芳表示,他已被Peroon技术所能做的一起所深深打动。Intuwave是一家从事嵌入式市场服务的公司,其需要在各种平台上做实验用于验证Intuwave的技术。“会有这种情况,当我们搭建了用于一个Symbian操作系统得技术时,客户坚持要求我们将所做的技术工作在微软设备上演示。如果没有PeroonE2W,移植工作将是一块主要的工作,其将显著占据我们的资源。但有了E2W ,我们能在非常短的时间内,通过采用我们的Symbian代码,使之运行在微软设备上并且将其展示给我们的用户。阿尔瑞指出Peroon解决了一个非常显著的问题,他还将Peroon 推荐给很多因新Symbian设备被推向市场而挣扎的独立软件开发商们。阿尔瑞相信,那些开发商将会发现Peroon会迅速有效的帮助他们解决这个问题。

然而,阿尔瑞说的这种情况可能会改变。丹指出在今年的稍后时间Peroon的某些技术将会转化成产品。

 

S2SE2W还没有被第三方开发者使用时,Peroon已经在Symbian社区发挥了一系列小作用。PeroonSymbian贡献很大。作者说:“大家喜欢这个公司和他的管理,我们认为这个技术是伟大的并且想做一些可以帮助Symbian社区发展的事情。还有,我们相信这些应用可以解决Symbian开发者所共同面临的一些问题。”

 

Peroon目前使用S2SE2W技术来对客户应用程序进行移植。但是如何判断他们的效率和有效性是困难的。然而,Peroon技术的创建者们坚持了承诺,如果他们确实能将唯一源码解决方案作用于Symbian操作系统平台以及与之竞争的平台,例如Windows mobile,Palm和Linux上时,Peroonj的确将对大量无线和移动软件开发者的工作做出革命性的改变。S2SE2W可能会单独引起SymbianSymbian许可证生产商的兴趣。如果回顾2003Nokia和索尼爱立信在3GSM上所宣称的,即他们将合作确保开发人员能轻易的在S60系列和UIQ之间进行移植这件事,Peroon的技术可以做为这两家公司为何应确保实现他们承诺的有效根据。

此文为开发视界翻译转载者请注明出处否则追究法律责任

相关文章:
Symbian中所体现的软件编程艺术
Symbian OS编码诀窍之设计诀窍
Tilelander for S60
A small tool to get the members of the TKeyEvent class
关于CommDb的一些注释
UIQ 模拟器的Internet
通过更改COM端口访问Internet
连接Symbian模拟器到Internet