王思佳
摘要:本文提出并設計了一款基于BREW平臺的具有界面管理功能的中間件,該中間件主要分為兩個功能模塊:界面描繪模塊和界面操作模塊,用來解決手機應用程序開發(fā)中與界面生成和管理有關的操作。
關鍵詞:BREW平臺中間件技術界面管理
BREW(Binary Runtime Environment for Wireless)平臺主要應用在無線數(shù)據(jù)通信領域,是美國QUALCOMM公司為了促進無線數(shù)據(jù)應用事業(yè)的發(fā)展推出的一個無線二進制的運行環(huán)境。
在手機移動設備中,BREW平臺可以看做是一個移動終端中的中間件,它是上層應用軟件與底層系統(tǒng)軟件進行交互的一個軟件接口層。有了它的支持,可以對上層應用軟件屏蔽掉底層手機芯片和系統(tǒng)軟件的差異性,使得程序員可以直接基于BREW平臺進行開發(fā);而對于手機的使用者同樣也帶來便利,只要持有支持BREW環(huán)境的手機設備,用戶可以根據(jù)需要方便的通過無線網(wǎng)絡下載應用軟件。
1 BREW平臺的體系架構
一個完整的BREW系統(tǒng)由開發(fā)環(huán)境、運行環(huán)境和服務器發(fā)布系統(tǒng)這幾個部分所構成。構成BREW系統(tǒng)的這三個要素相互協(xié)調(diào),相互促進,缺少哪個都將影響到BREW的完整性。
1.1 BREW開發(fā)環(huán)境 從基本層面而言,BREW平臺就是手持終端設備上嵌入式芯片操作系統(tǒng)的接口或抽象層,是為無線設備量身定做的。要開發(fā)應用程序,就要有相應的開發(fā)環(huán)境,BREW SDK就是BREW中軟件開發(fā)的平臺,它支持C/C++或Java等開發(fā)語言,BREW的開發(fā)環(huán)境中包含不同的類庫,這些類庫是支持面向對象機制的,類庫下設計了大量的功能接口,應用程序借助類接口和底層進行交互。
1.2 BREW運行環(huán)境 BREW運行環(huán)境(AEE)實際上是移動設備中的一個軟件的接口庫,它在移動終端中處于操作系統(tǒng)之上,為應用程序提供運行環(huán)境。AEE同時也肩負著控制應用程序能夠順利執(zhí)行的任務,對于程序運行過程中的一些突發(fā)事件,要能夠及時正確的給出反映。BREW的AEE運行環(huán)境占用的隨機存儲器非常小,因此無論對于高端手機設備還是低端機型都很適用。
1.3 BREW發(fā)布系統(tǒng) BREW系統(tǒng)中最重要的要數(shù)BDS分發(fā)系統(tǒng),它處于一個核心的位置,是無線通信事業(yè)上一項具有突破性的技術,他主要負責關于BREW的一些幕后工作。BDS分發(fā)系統(tǒng)實質(zhì)上是由網(wǎng)絡運營商控制的負責對用戶通過網(wǎng)絡所下載的應用進行管理的中心。即對于客戶端手機使用者可以根據(jù)需要無線下載各種BREW應用軟件,而服務器端的廠商可以使用BDS協(xié)調(diào)計費,根據(jù)下載量得到相應的收益,是整個BREW產(chǎn)業(yè)鏈的一個核心。
2 BREW平臺上中間件技術的開發(fā)
中間件技術是隨著軟件產(chǎn)業(yè)的不斷發(fā)展壯大而自然產(chǎn)生的,它并不是指某一個具體的軟件,而是對能實現(xiàn)某一類特殊功能的軟件的總稱。目前,在我國,中間件技術還處于發(fā)展階段,還沒有完全走向成熟。我國學術界對中間件普遍認可的定義是:“中間件是指在網(wǎng)絡環(huán)境下處于操作系統(tǒng)和數(shù)據(jù)庫之上,并且處于應用軟件之下的起連接作用的分布式軟件,通常情況下它是一種可以獨立的系統(tǒng)軟件或者是一種服務程序,它主要是通過對標準接口和API的封裝來隔離支撐它的底層系統(tǒng),同時為處于自己上層的應用軟件提供一個高效的開發(fā)、運行的環(huán)境,以使用戶可以靈活、高效地開發(fā)和集成復雜的上層應用軟件?!睆闹虚g件的定義中我們可以看出,它可以對應用軟件起到一個很好的支撐作用。
在本文中就提出設計了一款基于BREW的界面管理功能中間件,對BREW開發(fā)中經(jīng)常用到的大量的控件封裝成一個獨立的擴展功能,這樣在其他應用程序設計中涉及到與界面管理相關的功能都可以調(diào)用此中間件功能集中的接口,使得BREW上可以更容易的實現(xiàn)模塊化的開發(fā)。
在具體實現(xiàn)時,分為兩個部分:界面描繪模塊和界面操作模塊。界面描繪模塊主要用于描繪界面和生成控件,界面操作模塊是負責對控件執(zhí)行的相應操作。在每個模塊中的抽象類中定義了大量的API,每個接口中又包括不同的功能函數(shù),這些功能函數(shù)被封裝在虛擬函數(shù)表中,在應用執(zhí)行時通過宏QINTERFACE或AEEINTERFACE進行調(diào)用,從而進一步調(diào)用虛表中相應的功能函數(shù),實現(xiàn)不同的操作。
2.1 界面描繪模塊功能介紹 主要負責與畫面生成相關的一些操作,用于繪制界面生成所需的控件。在這個抽象類中封裝了許多相關的接口,主要包括:菜單接口IView_Menu,用于生成應用中所需的菜單項;彈出信息接口IView_Popup,顯示系統(tǒng)的彈出信息;進度條接口IView_Process,顯示執(zhí)行操作的進度;標簽接口IView_Tab;標題接口IView_Title;文本框接口IView_Text,接收用戶的輸入信息;幫助信息接口IView_Guid,用來在手機下方顯示此項操作的幫助信息;標簽接口IView_Tab,用標簽形式顯示功能項;IView_Tooltip接口,鼠標指向某一菜單項時在旁邊顯示相關操作信息;滾動條接口IView_Scrollbar,當顯示信息量超過屏幕所承受的尺寸時可以用來顯現(xiàn)更多信息等等。這些接口在文件頭部的虛擬函數(shù)表中進行定義,其中每個接口又包含不同的接口函數(shù),用來實現(xiàn)相關的功能。以手機電話薄的開發(fā)為例,它在具體實現(xiàn)上是以界面為主導的。電話薄每個界面窗體的實現(xiàn)都可以通過直接調(diào)用中間件中的功能接口,對于界面中相似的功能如大量的菜單的生成可以直接調(diào)用中間件中的Iview_Menu接口并通過對參數(shù)的設置來控制生成菜單的數(shù)量。這種操作方法既簡化了工作量同時又可以供其它開發(fā)人員重復使用。
2.2 界面操作模塊的功能介紹 該功能模塊的設計主要負責對界面執(zhí)行的相應操作的實現(xiàn),如用戶對某一菜單項執(zhí)行選擇操作,或對文本框進行輸入操作等。在這個抽象類中封裝了與操作相關的一些接口,主要包括:畫面執(zhí)行操作接口ISelect,接收用戶動作事件,執(zhí)行相關操作;軟鍵菜單接口SoftKey,用來接收用戶對軟件菜單執(zhí)行的操作;編輯接口Iedit,接收用戶的編輯信息,等等。其中每個接口都包含有一定的接口函數(shù),用來實現(xiàn)相關的功能。
2.3 界面間遷移的規(guī)則 BREW平臺下應用程序執(zhí)行最大的特點就是它的事件驅動和處理的機制,這種機制最大的優(yōu)點就是在面對一個復雜的應用程序時可以把它分割成各個小模塊單元,程序執(zhí)行過程就是在這些不同模塊單元狀態(tài)間的一種遷移轉換。基于本文所設計的界面管理中間件中開發(fā)應用程序時,應用的執(zhí)行過程可以看做是不同界面窗體間狀態(tài)的轉換。
有限狀態(tài)機的狀態(tài)遷移圖它的基本設計思路是這樣的:首先我們會根據(jù)所設計應用程序的具體實現(xiàn)把它劃分成幾個不同的狀態(tài),劃分的依據(jù)是程序中每涉及到一個顯示界面就把它作為一個狀態(tài),這樣程序中只存在狀態(tài)和界面兩種單元。在程序每進入一種狀態(tài)的時候就創(chuàng)建相應的界面,主要是通過界面描畫類中的功能函數(shù)實現(xiàn)的,界面創(chuàng)建完成的時候狀態(tài)機會暫停運作,等待用戶對已生成的界面執(zhí)行相應操作,這主要通過界面操作類中功能函數(shù)來實現(xiàn),在用戶對當前界面的操作執(zhí)行完成后將對其關閉,同時狀態(tài)機繼續(xù)啟動,執(zhí)行下一狀態(tài)運行。
在BREW平臺上開發(fā)這樣一款中間件的優(yōu)點是對下層可以屏蔽BREW底層龐大的接口庫,對上層應用可以提供一個統(tǒng)一的開發(fā)環(huán)境,使得開發(fā)人員即使并不十分了解BREW底層所有的接口也可以基于此中間件進行開發(fā),在開發(fā)中涉及到界面生成操作時就可以直接調(diào)用中間件中所封裝的接口函數(shù)完成相應的功能,這樣大大降低了開發(fā)的難度。
參考文獻:
[1]陳玉兵.BREW無線數(shù)據(jù)平臺的研究及應用[D].成都電子科技大學,2006.
[2]閆煒.基于BREW平臺用于手機定位的中間件的設計與實現(xiàn)[D].北京郵電大學,2006.
[3]向慧.基于BREW平臺手機應用研究與開發(fā)[D].電子科技大學,2005.
[4]唐季宇.BREW平臺內(nèi)部接口機制的探討[D].哈爾濱工程大學,2006.
[5]張云勇,張智江,劉錦德,等.中間件技術原理與應用[M].北京:清華大學出版社,2005.
[6]楊德仁,欒靜,顧君忠.中間件技術比較研究[J].計算機系統(tǒng)應用,2005(3):28.