Linux手機(jī)軟件平臺(tái)創(chuàng)建工具
圖3 基于RPM 的軟件構(gòu)建和發(fā)行。
在基于RPM 的解決方案中,開發(fā)人員只需要留心自己軟件包的源代碼VOB.VOB 是一個(gè)以版本的形式存儲(chǔ)項(xiàng)目產(chǎn)品和數(shù)據(jù)的資源庫(kù)。所有依賴的包都存儲(chǔ)在與RPM VOB 結(jié)合的RPM 發(fā)行服務(wù)器上,該服務(wù)器由軟件配置管理員維護(hù)。功能部件開發(fā)人員從發(fā)行服務(wù)器中獲得二進(jìn)制RPM 包,并且在平臺(tái)創(chuàng)建工具的幫助下安裝構(gòu)建環(huán)境。當(dāng)開發(fā)進(jìn)行到一定程度需要交付時(shí),開發(fā)人員將提出構(gòu)建請(qǐng)求。配置管理員將處理構(gòu)建請(qǐng)求,并將請(qǐng)求構(gòu)建的軟件包與其依賴的軟件包一同進(jìn)行構(gòu)建。之后,使用平臺(tái)創(chuàng)建工具通過(guò)RPM VOB和發(fā)行服務(wù)器發(fā)布版本。這樣,開發(fā)人員就可以使用新的版本進(jìn)行增強(qiáng)開發(fā)。經(jīng)理和其他項(xiàng)目股東可以使用網(wǎng)絡(luò)瀏覽器查看發(fā)行進(jìn)程和平臺(tái)變化。
當(dāng)配置管理員所發(fā)布的RPM 包不可用時(shí),開發(fā)人員還可以使用平臺(tái)創(chuàng)建工具調(diào)整這些包來(lái)解決相互依賴。
以上對(duì)于基礎(chǔ)結(jié)構(gòu)的開發(fā),通過(guò)使用功能部件的發(fā)行包,增強(qiáng)了功能部件間的邊界和API 的訪問(wèn)。所以,不會(huì)通過(guò)功能部件間的依賴看到它們的復(fù)雜性,確保手機(jī)軟件平臺(tái)擁有擴(kuò)展性和適應(yīng)性。
平臺(tái)創(chuàng)建工具就是要成為一個(gè)基于RPM 的平臺(tái)構(gòu)建、管理、部署的系統(tǒng)工具,并對(duì)嵌入式系統(tǒng)的發(fā)行提供強(qiáng)大的支持。
5 平臺(tái)創(chuàng)建工具的設(shè)計(jì)目標(biāo)
手機(jī)軟件平臺(tái)創(chuàng)建工具需要關(guān)注兩方面的問(wèn)題:
其一是保證使用工具構(gòu)建出的結(jié)果正確。使用工具能夠提高開發(fā)效率,縮短對(duì)開發(fā)人員的培訓(xùn)時(shí)間,但最為重要的是保證最終生成鏡像的正確;其二是充分利用已經(jīng)生成的手機(jī)RootFS 和鏡像。在手機(jī)的開發(fā)過(guò)程中,會(huì)經(jīng)歷無(wú)數(shù)次的構(gòu)建、測(cè)試、生成鏡像。每次發(fā)現(xiàn)問(wèn)題、修改源代碼后,都需要再進(jìn)行一次,但實(shí)際上每次改動(dòng)往往并不多,如果充分利用過(guò)去的基礎(chǔ),就可以節(jié)省大量的時(shí)間。
平臺(tái)創(chuàng)建工具應(yīng)該維護(hù)一個(gè)工作區(qū),供使用者進(jìn)行基于包的平臺(tái)建設(shè)、架構(gòu)和發(fā)行。這個(gè)工作區(qū)應(yīng)該是一個(gè)為唯一用戶維護(hù)當(dāng)前工程數(shù)據(jù)和結(jié)構(gòu)的獨(dú)立空間?;谶@個(gè)工作區(qū),平臺(tái)創(chuàng)建工具主要應(yīng)該支持以下功能:
?。?) 支持包管理操作,例如:安裝、卸載、升級(jí)、降級(jí)、信息查詢等;(2) 支持將源代碼RPM 包、源代碼目錄和二進(jìn)制RPM 混合在一起的平臺(tái)構(gòu)建;(3) 支持根據(jù)用戶指定的RPM 包生成手機(jī)RootFS;(4) 支持根據(jù)特定的系統(tǒng)分割、RootFS 內(nèi)容和RootFS 類型生成鏡像文件;(5) 調(diào)用鏡像燒制工具,將鏡像燒制到目標(biāo)設(shè)備上;(6) 支持平臺(tái)定制,并能導(dǎo)出備份文件供今后使用;(7) 支持基于指定的RPM 包和RPM 開發(fā)包生成軟件開發(fā)工具包。運(yùn)行庫(kù)、工具鏈、頭文件和軟件開發(fā)工具包的文件由用戶的RPM 開發(fā)包提供;(8) 提供插件機(jī)制,使新的目標(biāo)和工具鏈可用。
6 平臺(tái)創(chuàng)建工具的作用
平臺(tái)創(chuàng)建工具的定位是一個(gè)圖形用戶界面系統(tǒng)集成和分配工具,用來(lái)幫助開發(fā)人員開發(fā)嵌入式程序,使基于Linux 的嵌入式軟件平臺(tái)的建立、集成和分配更容易。其亮點(diǎn)在于靈活的包管理機(jī)制、方便的平臺(tái)構(gòu)造和部署、對(duì)不同生產(chǎn)線的支持、快速生成軟件開發(fā)工具包等,具有使用方便、工作效率高、資源重用性強(qiáng)等特點(diǎn)。最重要的是能夠大幅度的提高開發(fā)效率,并使開發(fā)人員和平臺(tái)配置管理人員擺脫復(fù)雜的命令行操作方式,通過(guò)清晰明了的GUI 完成工作,工作流如圖4 所示。
圖4 平臺(tái)創(chuàng)建工具工作流。
具體而言是針對(duì)Linux-Java 手機(jī)軟件平臺(tái)的集成和分配,以軟件包管理方式,替代繁雜的整體構(gòu)建方式;以自動(dòng)執(zhí)行的方式,替代人工的命令行操作方式,提高創(chuàng)建手機(jī)軟件平臺(tái)的效率,并使所創(chuàng)建的手機(jī)軟件平臺(tái)擁有更高的質(zhì)量和更好的維護(hù)性。
手機(jī)軟件平臺(tái)的開發(fā)可具體分為:成分部件開發(fā)、平臺(tái)創(chuàng)建、系統(tǒng)集成和系統(tǒng)部署四部分,如圖5 所示。
圖5 Linux/Java 平臺(tái)構(gòu)造模型。
可見,平臺(tái)創(chuàng)建工具的使用幾乎貫傳了整個(gè)平臺(tái)構(gòu)造全過(guò)程。在成分部件開發(fā)階段,使用RPM 對(duì)開發(fā)好的各個(gè)成分部件進(jìn)行分別打包后,交由平臺(tái)創(chuàng)建工具集中管理。在平臺(tái)創(chuàng)建階段,使用平臺(tái)創(chuàng)建工具對(duì)軟件包進(jìn)行分塊處理,按照不同的分類成為一個(gè)個(gè)資源庫(kù),并構(gòu)建可運(yùn)行平臺(tái),建立軟件開發(fā)工具包。這時(shí),對(duì)于指定生產(chǎn)線的手機(jī)軟件產(chǎn)品所需的軟件平臺(tái)就已經(jīng)成功建立,平臺(tái)擁有所有需要的軟件配置,并可生成出鏡像文件。最后使用鏡像燒制工具,將生成的鏡像燒到手機(jī)上,就可以進(jìn)行系統(tǒng)測(cè)試了。
7 結(jié)語(yǔ)
使用基于包管理方式的平臺(tái)創(chuàng)建工具,不僅可以彌補(bǔ)原始開發(fā)方法的不足,還可自動(dòng)為產(chǎn)品提供正確的配置,使得跟蹤包間的依賴關(guān)和進(jìn)行軟件發(fā)布、安裝、卸載、升降級(jí)都更加容易,同時(shí)它還是最被廣泛接受的向開源軟件組織發(fā)布源碼的方法,便于確認(rèn)開源軟件的靈活性。
手機(jī)軟件平臺(tái)創(chuàng)建工具作為一個(gè)圖形用戶界面系統(tǒng)集成和分配工具,用來(lái)幫助開發(fā)人員開發(fā)嵌入式程序,使基于Linux 的嵌入式軟件平臺(tái)的建立、集成和分配更容易。平臺(tái)創(chuàng)建工具的使用,將使手機(jī)開發(fā)商在降低開發(fā)成本的同時(shí),開發(fā)出功能更加完善的手機(jī)軟件平臺(tái),最終為用戶提供功能更加豐富的手機(jī)產(chǎn)品。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論