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