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