浅议跨平台开发方法

时间:2022-08-04 06:50:29

浅议跨平台开发方法

摘要:本文给出了跨平台的概念,并探讨几种跨平台的方法以及跨平台的开发方式的特点,简要并分析了三种不同类库下跨平台开发的优劣及特点。

关键词:跨平台;Borland;JAVA;QT;WXWindows

随着经济和技术的发展,全球化进程的加速,特别是互联网的发展和普及,为软件提供了一个世界范围的运行环境,当一个软件到网络上面时,这个软件很可能瞬间在全世界范围内被人使用。从软件开发商的角度来看,同时具有能够在不同平台上应用和全球化特性的软件能够最大限度的占有市场;从自由软件开发团体和个人来看,开发的软件不但能够运行在多种操作系统下,而且还能够以不同的语言版本及不同硬件环境上运行,全世界用户都可以使用,这本身就符合自由和开放的追求。由于这些因素,跨平台技术和全球化技术一直是软件业研究和发展的重要课题。

跨平台是软件开发中一个非常重要的概念,指不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下也可以运行。相对而言,理论上,如果某种计算机语言不用修改源代码即可做到跨平台,那么此语言就越抽象,依赖于硬件以及对硬件的控制力就越低,适合开发高度抽象的模型系统。比较经典的诸如java,delphi等,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。就目前而言,Java成为大部分程序员多平台开发的首选,即使还有其他语言的存在。但是对于很多应用程序来说,只有在本地编译的机器语言才有用, 而不喜欢象.省略 Framework的许可,.net Framework软件简化了基于网络服务标准的应用程序的开发。网络服务应用程序使用XML语言和其他协议,可以在不同的系统中相对简单的共享数据。公司也可以用J2EE编程模式来编写网络服务程序。

显然,Borland的策略是用可以工作在不同开发模式下的工具来对付竞争者。但其不足之处在于,它是一个商业软件产品。这是个很严重的问题,因为你不得考虑许可证的管理。这也许是相当昂贵的,有时候要为的专业编程开发人员支付从999美元到2499美元不等的费用,即使是个人版也要69美元。另外,是它只支持很少几个Linux的发行版本。Kylix要求目标机器和开发机器上都有可以使用的KDE。

尽管有这些不足之处,新版的Kylix仍然是一个让软件开发人员迅速编写程序成为享受的成熟产品。

二、wxWindows的方式

wxWindows是一个在多个平台上提供GUI的c++框架,同时它也是一个非常成熟的开放源代码项目。它的许可证是自由使用的,因此你不需要担心许可证的问题。可以使用这个库的目标平台可以是Windows、UNIX(GTK)和Mac。wxWindows的UNIX版本则要依赖于GTK库作为它后端支持;这就意味着它不是捆绑到某个特定的平台上的。由于这是一个开放源代码的项目,所以就没有任何先期的费用,例如许可证的购买,而你也不用担心许可证的管理。并且还有一个可用的商业集成开发环境(IDE)能够支持这个库。它的文档是完整的,并一直保持更新。所以,它的特点是:

(1)为C++类别库工具提供各式的图形用户接口组件,除用C++来编写程序外,还可以使用Python、Perl等语言来编写。其工作原理及类别层次的结构与MFC相似。

(2)其发展历史悠久,工具成熟,并具备完整的说明帮助文件,具有快速应用程序开发工具(Rapid Application Development,RAD)。

(3)具有跨平台的能力(Windows/UNIX/Mac)。

(4)它是开放程序代码(Open Source)与LGPL版本,任何人都可以使用与发展。

使用这个库来进行跨开发是本次讨论中所讨论的三个库里较为简单的,但是,它没有商业级支持,你通常只能通过新闻组或IRC来获得开放源代码的支持。

三、Qt的方式

Qt是1991年由奇趣科技开发的跨平台开发框架。可以支持Windows、 Mac、 Linux/X11、 embedded Linux、 Windows CE和 S60 ,可谓功能强大。它既可以开发GUI程式,也可用于开发非GUI程式。它的库是一个由Trolltech提供的商业库。Qt的平台本质上是在不同的平台上提供一套相同interface的lib来实现的,和java不一样的是Qt程序在不同平台上要分别编译,可以说是一次开发,多次编译。这个库是以源代码的形式的,其目标平台既可以是Windows也可以是各种UNIX。这个库实行双许可证制,一种是商业的,以每个开发者付费许可,另一种是叫做QPL的开放源代码许可证,这同GPL很类似,能让最终用户使用源代码。 使用Qt库进行开发要比使用wxWindows库稍稍容易一点,但要比使用Kylix来开发困难一些。目前有几个IDE可以和Qt一起使用。

Qt的另一个好处是它并不捆绑某个特定UNIX桌面环境,即使是商业许可证性质的库,Qt也提供了对它的支持。

然而,Qt库的双许可证特性使得许可证的管理变得相对复杂。首先,你必须确定自己的项目要使用哪种许可证。比如,你也许要启动一个内部项目,并使用QPL,但后来你想要将这个项目转为商业应用。于是,问题就来了,因为从法律上,你不能够随意地转换许可证模式。但如果选择了商业许可证的话,你又必须处理好许可证的管理和许可证的费用。

综上所述,就我所讨论的三个库而言,三个库各有特点优劣,开发者在实际具体到项目实施过程中,结合项目的特性并考虑价格问题,找出一个适合的跨平台开发方法。所有上述这些库及其相关的工具都可以从相应的Web网站上下载,开发者在决定项目开发所要用的工具前,可以免费地试用这些库和工具。(作者单位:福建信息职业技术学院)

上一篇:浅析基于网络消费心理的淘宝原创品牌推广策略 下一篇:宗教与社会信任文献综述