現(xiàn)今的已經(jīng)兼容3G手機(jī)等移動(dòng)終端設(shè)備,而3G智能手機(jī)使用的操作系統(tǒng)一般與PC的操作系統(tǒng)不一樣,其開(kāi)發(fā)環(huán)境一般都在PC上進(jìn)行,通過(guò)模擬器在PC上進(jìn)行手機(jī)系統(tǒng)的應(yīng)用程序開(kāi)發(fā),而在這些操作系統(tǒng)上運(yùn)行的應(yīng)用程序一般都比較缺乏,為了在系統(tǒng)上有更多的應(yīng)用,通常把PC上的應(yīng)用程序通過(guò)相應(yīng)的代碼修改和重新編譯,實(shí)現(xiàn)PC應(yīng)用程序的手機(jī)移植。智能手機(jī)的應(yīng)用程序移植主要采用跨平臺(tái)的開(kāi)發(fā)語(yǔ)言進(jìn)行開(kāi)發(fā),如JAVA和C語(yǔ)言,通過(guò)跨平臺(tái)語(yǔ)言的多平臺(tái)交叉編譯以及一些特定的優(yōu)化,使在PC上運(yùn)行的應(yīng)用系統(tǒng)能移植到手機(jī)系統(tǒng)上。
3G智能手機(jī)包括不同的操作系統(tǒng),如蘋果手機(jī)的iOS系統(tǒng)、安卓手機(jī)的Android系統(tǒng)、Windows Phone系統(tǒng)、諾基亞手機(jī)的Symbian操作系統(tǒng)等,這些操作系統(tǒng)的應(yīng)用程序一般都不能在其他的操作系統(tǒng)上運(yùn)行,傳統(tǒng)的方式是為每個(gè)操作系統(tǒng)開(kāi)發(fā)相應(yīng)的應(yīng)用程序,但需要為每個(gè)操作系統(tǒng)編寫不同的代碼,因此開(kāi)發(fā)與維護(hù)的成本非常高。本項(xiàng)目采用了分層異構(gòu)開(kāi)發(fā)技術(shù),在移植代碼最小化的前提下,解決了的手機(jī)跨平臺(tái)的兼容性、執(zhí)行效率的問(wèn)題。該技術(shù)采用跨平臺(tái)的JAVA、C語(yǔ)言進(jìn)行編碼,JAVA語(yǔ)言能支持幾乎全部的手機(jī)操作系統(tǒng),其界面庫(kù)都能跨平臺(tái),但執(zhí)行效率相對(duì)較低,適合于開(kāi)發(fā)跨平臺(tái)的界面;而C語(yǔ)言也能支持全部的手機(jī)操作系統(tǒng),執(zhí)行效率非常高,但跨平臺(tái)的時(shí)候只能實(shí)現(xiàn)C語(yǔ)言標(biāo)準(zhǔn)庫(kù)的跨平臺(tái),適合于開(kāi)發(fā)底層的傳輸及處理算法。針對(duì)這兩種開(kāi)發(fā)語(yǔ)言的特性,我們把系統(tǒng)分成用戶界面層、業(yè)務(wù)層、復(fù)用層、通信層,用戶界面層用JAVA語(yǔ)言進(jìn)行開(kāi)發(fā),保證了不同的操作系統(tǒng)具有相同的操作界面;由于業(yè)務(wù)層、復(fù)用層、通信層只涉及到具體的傳輸和處理算法,而這些算法通過(guò)C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)就可以實(shí)現(xiàn),因此采用C語(yǔ)言進(jìn)行開(kāi)發(fā),保證了系統(tǒng)的執(zhí)行效率。而用C語(yǔ)言實(shí)現(xiàn)的這四個(gè)層,我們會(huì)把它保存為一個(gè)動(dòng)態(tài)庫(kù),這個(gè)動(dòng)態(tài)庫(kù)供上層的界面層來(lái)調(diào)用。雖然該方式在不同的平臺(tái)上還需進(jìn)行重新編譯,甚至?xí)枰膭?dòng)一些代碼,但該方式已經(jīng)實(shí)現(xiàn)了移植代碼的最小化,兼顧了執(zhí)行效率和對(duì)不同平臺(tái)的兼容性的支持,并且大大減少了開(kāi)發(fā)和維護(hù)成本。