国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C++語(yǔ)言的跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)

2014-04-21 15:40:36楊鵬
新媒體研究 2014年4期
關(guān)鍵詞:跨平臺(tái)應(yīng)用程序代碼

楊鵬

摘 要 在如今的計(jì)算機(jī)語(yǔ)言里面,使用頻率和次數(shù)比較多的是C++語(yǔ)言,因?yàn)樗哂斜容^高的編程速度,不僅這樣它還有一些獨(dú)特的地方。但是,通過(guò)一些實(shí)際的編程過(guò)程,我們可以知道C++語(yǔ)言還是存在一些缺陷的,它會(huì)給一些跨平臺(tái)軟件的開(kāi)發(fā)帶來(lái)很大的困難。經(jīng)過(guò)大量的軟件編程實(shí)踐,文章簡(jiǎn)介了跨平臺(tái)的概念、開(kāi)發(fā)環(huán)境和開(kāi)發(fā)設(shè)計(jì)的思路。關(guān)鍵詞 C++;跨平臺(tái)軟件

中圖分類號(hào):TP317 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)04-0019-01

使用C++語(yǔ)言進(jìn)行跨平臺(tái)的開(kāi)發(fā),目的是把應(yīng)用程序的代碼處理成能夠在已有的平臺(tái)下使用和能執(zhí)行文件。但是在其他平臺(tái)中,處理后的文件不可以被使用,特別在Windows與Unix平臺(tái)下更不能使用。所以,要解決和處理這個(gè)缺陷,就要將源程序的代碼翻譯成在各個(gè)平臺(tái)下都能使用的文件。通過(guò)幾十年的發(fā)展和演變,C++語(yǔ)言基本上能夠在所有的平臺(tái)下進(jìn)行工作,但是在不同平臺(tái)下的編譯也會(huì)不同,也造成了語(yǔ)言之間的不同。同樣的,設(shè)計(jì)一個(gè)新產(chǎn)品就要對(duì)操作系統(tǒng)的函數(shù)進(jìn)行使用和調(diào)用。因此,要避免這種區(qū)別就要在代碼中使用條件選擇編譯、進(jìn)行工程模式編譯或可以使用預(yù)編譯。各種平臺(tái)使用的程序編譯手段也是不一樣的。要使在不同平臺(tái)下進(jìn)行程序編譯時(shí)出現(xiàn)最小的差別就要手動(dòng)對(duì)編譯條件的設(shè)置控制或管理。使用腳本文件和環(huán)境變量,還可以使用第三方軟件對(duì)代碼進(jìn)行動(dòng)態(tài)編譯,這樣就能使跨平臺(tái)開(kāi)發(fā)的難度簡(jiǎn)化。

1 跨平臺(tái)的概念

在軟件開(kāi)發(fā)中有個(gè)很重要的概念就是跨平臺(tái),跨平臺(tái)和操作系統(tǒng)無(wú)關(guān)也與硬件環(huán)境不相關(guān)聯(lián)。如果一個(gè)應(yīng)用程序是在操作系統(tǒng)下開(kāi)發(fā)和設(shè)計(jì)的,那把它放在其他操作系統(tǒng)中也能使用。隨著軟件工程的發(fā)展對(duì)跨平臺(tái)開(kāi)發(fā)的需求也在不斷的增加,所以要開(kāi)發(fā)出能夠在各種各樣的平臺(tái)下都能使用的應(yīng)用程序,就能為應(yīng)用程序創(chuàng)造很大的市場(chǎng)份額。

2 跨平臺(tái)的開(kāi)發(fā)所需要的環(huán)境

軟件編輯器、程序編譯器和程序調(diào)試器是構(gòu)成開(kāi)發(fā)環(huán)境的三個(gè)組成部分。Sandbox是進(jìn)行代碼編譯和調(diào)試的軟件,其內(nèi)部含有各種平臺(tái)下需要的不同種類的依賴庫(kù)和代碼庫(kù)。在程序的開(kāi)發(fā)中它還含有各種源代碼。它的配置對(duì)多元化的平臺(tái)的要求也是很高的,通常講,C/C++語(yǔ)言的軟件開(kāi)發(fā)和編譯要在各個(gè)平臺(tái)上能夠使用,還要注意以下問(wèn)題。

1)最終結(jié)果的質(zhì)量:Sandbox中所選擇的工具是否能夠產(chǎn)生最好的代碼。是否能夠產(chǎn)生最簡(jiǎn)潔,最友好的配置文件以及在捕捉錯(cuò)誤和調(diào)試時(shí)是否能夠提供足夠的支持。

2)Sandbox中含有的工具是否可以使應(yīng)用程序與多元性的目標(biāo)平臺(tái)進(jìn)行合理的整合。

3)創(chuàng)立的Sandbox是不是可以使管理更加的簡(jiǎn)單,即能否在不同的平臺(tái)進(jìn)行變換時(shí)出現(xiàn)最小差異的文件。

對(duì)跨平臺(tái)開(kāi)發(fā)來(lái)說(shuō)實(shí)現(xiàn)抽象是很重要的一個(gè)因素,但是利用與平臺(tái)相關(guān)的工具包也需要使用相適應(yīng)的工具。這些開(kāi)發(fā)工具往往并不是統(tǒng)一的,比如Linux上流行的GCC在Windows下的使用并不如VisualStudio.nct中的C++。要達(dá)到這個(gè)目的,就要把用抽象以及相關(guān)的設(shè)計(jì)使用新的開(kāi)發(fā)手段進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)在不同的平臺(tái)下都能進(jìn)行編譯。

3 C++語(yǔ)言的跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)

3.1 避免語(yǔ)言的擴(kuò)展特性

不管我們依據(jù)哪一種形式的方法進(jìn)行編程,一般要選擇比較老的程序庫(kù)或文件。比較老的程序庫(kù)里面的一些原有程序和公式都是很規(guī)范的和標(biāo)準(zhǔn)的,不像現(xiàn)在的一些新的程序庫(kù)一樣比較的雜亂無(wú)章。有非常普遍出現(xiàn)的故障在跨平臺(tái)上產(chǎn)生,有時(shí)在獲得支持后,還是會(huì)出現(xiàn)沒(méi)有定義精確的事故??缙脚_(tái)開(kāi)發(fā)是對(duì)異常靈敏度要求很高的,無(wú)限度的利用新特性,就會(huì)使軟件很難排除異常情況。所以,在跨平臺(tái)開(kāi)發(fā)時(shí)要調(diào)用C++的標(biāo)準(zhǔn)函數(shù)模型,這樣就會(huì)使已開(kāi)發(fā)的軟件和產(chǎn)品的穩(wěn)定性更加強(qiáng)。

3.2 實(shí)現(xiàn)動(dòng)態(tài)處理

在實(shí)際的開(kāi)發(fā)過(guò)程中,每當(dāng)編寫一個(gè)旨在多種環(huán)境中運(yùn)行的可移植代碼庫(kù)時(shí),項(xiàng)目的開(kāi)發(fā)就會(huì)不可避免的面臨一個(gè)問(wèn)題,即怎樣處理在一個(gè)平臺(tái)上有而在另外一個(gè)平臺(tái)上沒(méi)有的特性。

3.3 使用腳本文件進(jìn)行管理

要達(dá)到使編寫的程序代碼簡(jiǎn)潔、易懂的目的,要使軟件的結(jié)構(gòu)更加的合理,這就要求先把與平臺(tái)相關(guān)聯(lián)的文件和數(shù)據(jù)庫(kù)分割開(kāi)來(lái),再把在開(kāi)發(fā)期間要用的腳本文件進(jìn)行編譯,再合理的分到各個(gè)部位。在使用應(yīng)用程序時(shí),要把配置文件里的配置選項(xiàng)調(diào)出來(lái)進(jìn)行讀取里面的程序。因此,當(dāng)跨平臺(tái)軟件開(kāi)發(fā)時(shí),要使與平臺(tái)相關(guān)聯(lián)的文件全部進(jìn)行分離,要利用特殊的手段來(lái)實(shí)現(xiàn)該功能。

3.4 使用安全的數(shù)據(jù)串行化

如何使用安全和可靠的對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和加載是跨平臺(tái)要解決的核心問(wèn)題。利用軟件的“fwrite”或“fread”指令可以對(duì)每個(gè)編譯器和單一目標(biāo)平臺(tái)處理。若果是在跨平臺(tái)的操作環(huán)境中,利用這種方法對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和加載就不能做到平臺(tái)間的獨(dú)立性。如果要利用跨平臺(tái)對(duì)數(shù)據(jù)存儲(chǔ)到目標(biāo)文件外,不同平臺(tái)間是有差異的,這樣也會(huì)引起結(jié)果的多樣性。

3.5 跨平臺(tái)開(kāi)發(fā)中的編譯與測(cè)試

當(dāng)進(jìn)行跨平臺(tái)軟件開(kāi)發(fā)時(shí)會(huì)與修改和編寫的很多代碼有關(guān)聯(lián),相關(guān)聯(lián)的代碼會(huì)在很長(zhǎng)的時(shí)期內(nèi)不能在另外的平臺(tái)檢測(cè),也會(huì)造成bug的潛藏時(shí)間增長(zhǎng)。所以,要在多個(gè)不同的平臺(tái)下進(jìn)行測(cè)試,這樣就能及時(shí)發(fā)現(xiàn)bug。

3.6 實(shí)現(xiàn)抽象

實(shí)現(xiàn)抽象是處理跨平臺(tái)中應(yīng)用程序能被移植難題的有效方式。通過(guò)這種方式我們就能不利用一般的結(jié)構(gòu)體系而進(jìn)行單獨(dú)的軟件開(kāi)發(fā),同時(shí)還能夠使編出的程序更加的獨(dú)立化和簡(jiǎn)潔化。當(dāng)對(duì)跨平臺(tái)進(jìn)行開(kāi)發(fā)時(shí),會(huì)有非常多的函數(shù)要進(jìn)行利用,但是開(kāi)發(fā)時(shí)不用編譯所有的函數(shù),通常使用的方法是封裝,這些就是實(shí)現(xiàn)抽象的過(guò)程。封裝的方法并不是在任何情況下都是適用的,當(dāng)遇到一些特殊的情況時(shí),我們要使用其他的方式來(lái)進(jìn)行程序的調(diào)用,我們提前可以將編寫好的功能程序存放到程序空中,并以該功能命名,當(dāng)我們使用該程序或公式的時(shí)候,可以直接調(diào)用該功能的程序,便可以實(shí)現(xiàn)該功能。不管選用哪一種方式無(wú)非是對(duì)任意接口函數(shù)與平臺(tái)中的聯(lián)系進(jìn)行隱藏。

4 結(jié)束語(yǔ)

本文主要介紹了跨平臺(tái)的定義和進(jìn)行跨平臺(tái)設(shè)計(jì)所需要的環(huán)境以及怎樣進(jìn)行跨平臺(tái)設(shè)計(jì)。在進(jìn)行跨平臺(tái)設(shè)計(jì)的過(guò)程中我們結(jié)合了其他軟件設(shè)計(jì)的一些思路和方法,經(jīng)過(guò)大量的軟件設(shè)計(jì)實(shí)踐,得出了一套跨平臺(tái)設(shè)計(jì)的方法和手段。與此同時(shí)我們還要在開(kāi)發(fā)的軟件中加入更多的功能和操作容積。對(duì)跨平臺(tái)進(jìn)行設(shè)計(jì)而言,經(jīng)驗(yàn)是很重要的,經(jīng)驗(yàn)越豐富的設(shè)計(jì)工程師設(shè)計(jì)的軟件的功能會(huì)越好一些,沒(méi)有經(jīng)驗(yàn)的工程師,在首次設(shè)計(jì)時(shí)很難利用跨平臺(tái)設(shè)計(jì)一個(gè)非常完美的應(yīng)用軟件。所以,本文介紹了跨平臺(tái)軟件設(shè)計(jì)的一些技術(shù),希望可以為跨平臺(tái)的開(kāi)發(fā)的設(shè)計(jì)工程師提供一些幫助。

參考文獻(xiàn)

[1]夏雪挺.跨平臺(tái)數(shù)據(jù)庫(kù)備份的設(shè)計(jì)與實(shí)現(xiàn)[D].西南交通大學(xué),2006.

[2]孫波.跨平臺(tái)工具軟件在控制軟件開(kāi)發(fā)中的應(yīng)用[D].上海交通大學(xué),2009.endprint

猜你喜歡
跨平臺(tái)應(yīng)用程序代碼
刪除Win10中自帶的應(yīng)用程序
跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測(cè)與診斷系統(tǒng)
基于B/S的跨平臺(tái)用戶界面可配置算法研究
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
梁河县| 乐业县| 榆树市| 大连市| 桐柏县| 桐庐县| 邵阳市| 南雄市| 长海县| 楚雄市| 磐石市| 苍梧县| 应用必备| 祥云县| 漾濞| 津市市| 平南县| 扬州市| 岳阳市| 古蔺县| 连山| 通州区| 武邑县| 清原| 富源县| 灌阳县| 兴隆县| 大城县| 石景山区| 林芝县| 孟津县| 榆树市| 会东县| 尉氏县| 永仁县| 海林市| 贞丰县| 巴林左旗| 濮阳市| 庆云县| 平江县|