跨平台

軟體開發中的重要概念

跨平台概念是軟體開發中一個重要的概念,即不依賴於操作系統,也不依賴硬體環境。一個操作系統下開發的應用,放到另一個操作系統下依然可以運行。相對而言如果某種計算機語言不用修改代碼即可做到高度跨平台,那麼此語言就越抽象,硬體控制力就越低,只適合開發高度抽象的模型系統。諸如java,delphi和易語言,都已做到了跨平台。它們將可以在多種系統下開發,運行和維護。

釋義


跨平台泛指程序語言、軟體或硬體設備可以在多種作業系統或不同硬體架構的電腦上運作。
廣義而言,一般的計算語言都可做到跨平台,開發商只需要提供各種平台下的Runtime/中間件環境即可。嚴格而言是指用某種計算機語言編製的程序只需要做小量的修改,編譯之後即可在另外一種平台下運行,此時並不提供Runtime/中間件環境。例如Java是一種提供Runtime環境的跨平台解決方案,而C是一種標準且嚴格的跨平台語言。

支持軟體


1.資料庫管理系統(DBMS):
MySQL:Solaris、Linux、Windows、FreeBSD
Oracle:Solaris、Linux、Windows
DB2:Unix、Linux、Windows、z/OS
2. 網站伺服器、應用程序伺服器:
Apache:Solaris、Linux、Windows、FreeBSD
Tomcat:Linux、Windows、FreeBSD
3. 網路瀏覽器:
Mozilla Firefox:Linux、FreeBSD、Solaris、AIX、Windows、

程序語言


C語言、C++、Java
Perl、Tcl、Erlang
Python、Delphi+Kylix、REALbasic
php

詳細解說


大部分電腦語言從絕對意義而言,都是跨平台的:因為都是以高級的、人類可讀的方式來對CPU發號指令,這樣也就沒必要依賴於任何作業系統。但如果要用系統的部件工具箱,來新建用戶圖形界面(GUI),就可能會用到開發員特定系統中的API函數或庫類。雖然C++是跨平台的,但Windows下用到Win32 API的C++程式,一般就不能在Unix機器上編譯。不同編譯器對語言規範的解釋也有所差異。這樣的話,在針對不同系統進行構建之前,程式就得加以考慮。
一些如Java這樣的語言,從一開始就意識到要在各個平台下運行,所以跨平台在其平台的本地語言環境中已經實現。例如,Java可以跨平台使用,正是由於Swing庫在許多平台下的實現。類似的,能進行跨平台的文件存取,是因為有各自平台下文件存取的庫。以此類推,各種跨平台問題,都需要各自的本地庫來解決。wxWidgets框架就是這樣的一個跨平台庫,根據不同的跨平台問題,提供了許多不同的解決方案;類似的庫有許多,可以根據不同語言的跨平台開發,而採用相應的庫。
針對每種作業系統、CPU,而提供並測試各自的編譯版本,這種做法的可行性很小;開源軟體則允許用戶自己來編譯目的碼(object code),這樣在跨平台方面更好一些。類似的,那些解釋型語言,或者需要虛擬機的語言,也更加符合跨平台的要求,因為用戶也要自己進行編譯。Sun公司Java虛擬機Hotspot,只針對幾種而不是全部平台,提供編譯好的二進位文件。例如,Sun對於GNU/Linux,只支持i386平台,但如果誰在PowerPC或者SPARC電腦上運行Linux,就只好自己編譯本地的機器碼(machinecode),或者使用第三方軟體,才能運行Java程式。
許多API(應用程式介面)依賴於平台。OpenGL可以看作是跨平台的,因為其不依賴於任何特定的作業系統、CPU構架或者某個牌子的圖形設備。特定平台的API可以在其他系統上作為兼容層而新建,例如WINE的庫,Windows程式就可以在UNIX系統上運行。
另外許多程式語言還有跨平台的擴展以及中間件,這樣程式設計師對於同樣的原始碼,只要進行一點小修改,就可以在不同平台下編譯/運行,例如Qt和wxWidgets。

平台語言


php開發的程序可以不經修改運行在,windows.linux,unix等多個操作系統上
補充:舉例說windows系統的軟體不可以在linux上運行,linux系統的軟體不可以在windows上運行.
但是php的解釋器有多個操作系統的多個版本,多的偶都叫不出來名字,凡是有解釋器的操作系統你寫的php程序就可以運行,不論你是在windows還是linux下寫的
目前市面上主流的跨平台應用程序和UI開發框架:
1、QT
QT是諾基亞的開源跨平台開發工具。主要用於嵌入式開發,MeeGo平板和MeeGo手機開發。
2、MicroGUI
MicroGUI是國人自行研發的跨WinCE、Windows Mobile、MTK、QT、Symbian、iPhone、Android、Brew MP等多款平台的UI開發框架。該產品正在產品研發階段。預計年底前會上市。
3、MiniGUI
MiniGUI也是一款國產的GUI系統,主要用於低端嵌入式領域開發。

應用前景


移動領域的開發,目前面臨不同操作系統需不同開發語言,同一操作系統存在不同版本,同一版本存在不同機型等難題,給移動開發增加了很大難度。
在移動開發領域,跨平台開發技術成為很多企業和開發者的首選,可以有效解決不同操作系統不同機型終端的開發難題,為企業節省時間成本和人員成本。
目前國內外知名的跨平台開發技術有:PhoneGap(美國)、Titanium(美國)、SenCha(美國)、AppCan(中國)。
AppCan是國內首個基於HTML5技術的跨平台移動應用開發平台,實現一次開發、多平台適配,支持iOS、Android、Symbian、Windows Phone四大智能平台,可以有效降低開發門檻,減少開發周期。
愛碼哥作為第三代移動中間件採用(xml和JavaScript)的開發方式並內置了開發框架,可以實現用Javascript、Java、.Net、php或htlm5當中的任何一套開發語言寫一套代碼就可以生成Android和iOS的兩個系統的原生app可以有效降低開發門檻,減少開發周期。