欢迎来到天天文库
浏览记录
ID:44626004
大小:64.00 KB
页数:5页
时间:2019-10-24
《浅谈跨平台技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、什么是跨平台技术?跨平台技术是什么意思?跨平台泛指程序语言、软件或硕件设备可以在多种作业系统或不同硕件架构的电脑上运作。广义面言,一般的计算语言都对做到跨平台,开发商只需要提供各种平台下的Runtime冲间件环境即可。严格而言是指用某种计算机语言编制的程序只需要做小量的修改,编译之後即可在另外一种平台卜•运行,此时并不提供Runtimc/中间件环境。例如Java是一种提供Runtime环境的跨平台解决方案,而C而是一种标准且严格的跨平台语言。跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖破件环境。一
2、个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽彖,硬件控制力就越低,只适介开发高度抽象的模型系统。诸如java,delphi和易语言,都已做到了跨平台。它们将可以在多种系统F开发,运行和维护。人部分电脑语言从绝对意义而言,都是跨平台的:因为都是以高级的、人类可读的方式来对CPU发号指令,这样也就没必要依赖於任何作业系统。但如果要用系统的部件工具箱,來新建用户图形界面(GUI),就可能会用到开发员特定系统中的API函数或库类。虽然C++
3、是跨平台的,但Windows卜JIJ到Win32API的C卄程式,一般就不能在Unix机器匕编译。不同编译器对语言规范的解禅也冇所差异。这样的话,在针对不同系统进行构建Z前,程式就得加以考虑。—•些如Java这样的语言,从一•开始就意识到要在各个平台下运行,所以跨平台在其平台的本地语言环境中己经实现。例如,Java可以跨平台使用,止是由於Swing库在许多平台下的实现。类似的,能进行跨平台的文件存取,是因为有各自平台下文件存取的库。以此类推,各种跨平台问题,都需要各口的本地库来解决。wxWidgcts框架就是这样的一个
4、跨平台库,根据不同的跨平台问题,提供了许多不同的解决方案;类似的库有许多,可以根据不同语言的跨平台开发,而采用相应的库。针对每种作业系统、CPU,而提供并测试各自的编译版本,这种做法的可行性很小;开源软体则允许用户自己来编译日的码(objectcode),这样在跨平台方面更好一些。类似的,那些解释型语言,或者需要虚拟机的语言,也更加符合跨平台的要求,因为用户也要自己进行编译。Sun公司的Java虚拟机Hotspot,只针对儿种而不是全部平台,提供编译好的二进位文件。例如,Sun对於GNU/Linux,只支持i386平台
5、,但如果谁在PowerPC或者SPARC电脑上运行Linux,就只好自己编译本地的机器码(machinecode),或者使用第三方软体,才能运行Java程式。许多API(应用程式介面)依赖於平台。OpenGL可以看作是跨平台的,因为其不依赖於任何特定的作业系统、CPU构架或者某个牌了的图形设备。特定平台的API可以在其他系统上作为兼容层而新建,例如WINE的库,Windows程式就可以在UNIX系统上运行。另外许多程式语言还有跨平台的扩展以及屮问件,这样程式设计师对於同样的原始码,只要进彳亍一点小修改,就可以在不同平台
6、下编译/运行,例如Qt和wxWidgetso支持多种作业系统的软体1.资料库管理系统(DBMS):MySQL:Solaris、Linux>WindowsaFreeBSDOracle:Solaris>Linux、Windows2.网站伺服器、应川程式伺服器:Apache:SolarisLinux、Windows>FreeBSDTomcat:Linux>WindowssFreeBSD3.网际网路浏览器:MozillaFirefox:LinuxFreeBSD^Solaris>AIX^Windows>可在不同作业系统上进行软体
7、开发的程式语言C语s、C++、JavaPerl、Tcl>ErlangPython>Delphi+Kylix、REALbasic开发java应用的跨平台,包含五方面的内容:一、跨应用服务器二、跨数据库三、跨操作系统四、跨浏览器五、多语言支持下面分别来说一下。■跨应用服务器这一点,看起來好像有些多余,java的口号Z—不就是“一次编译,到外运行"嘛,可实际经验告诉我们,这仅仅是一个口号而已。实际中是“一次编译,到处调试"。为什么会这样?从应用服务器来说,各个产品或多或少都在标准的java规范之上进行了一些拓展,小规模的应用
8、开发,多以tomcat为基准;人规模的应用,多以wcblogic/wcbsphcrc为基准。那么开发完成的应用,可否在所有的应用服务器上止常部署呢?答案是否定的。在tomcat5上部署没问题,在tomcat4上却町能有问题;在tomcat5/4上没问题,却可能在resin/jetty/weblogic/websphere上有问题。
此文档下载收益归作者所有