百科解釋
·BREW的優(yōu)點
·BREW的缺點
·組成
·版本
無線二進(jìn)制執(zhí)行環(huán)境(Binary Runtime Environment for Wireless,簡稱BREW)為2001年美國高通(Qualcomm)公司所設(shè)計提出的3G系統(tǒng)最佳平臺解決方案,可支援CDMA One/CDMA2000/GSM/GPRS/UMTS/WCDMA,技術(shù)上橫跨電信、軟件開發(fā)、手機廠等三大領(lǐng)域,在編程語言支援方面,BREW可讓使用C/C++語言開發(fā)的應(yīng)用擁有更好的運行效能,同時它還支援其他開發(fā)語言,包括Java、XML和Flash等。目前有美國Verizon Wireless、中國聯(lián)通、日本KDDI、韓國KTF、泰國Hutchison cat、澳大利亞Telstra、墨西哥Iusacell、印度Tata、巴西VIVO、阿根廷Movicom、以色列Pelephone、委內(nèi)瑞拉的Telcel、烏拉圭的Movicom……等數(shù)十家電信業(yè)者采用。
BREW的執(zhí)行環(huán)境稱為BREW AEE(Application Execution Environment),這是一個中間層的應(yīng)用,具有高效、低成本、可擴展性。一般所見到的BREW例子都是用C寫的,不過BREW開發(fā)是完全支持C++語言的,2003年宣布支援Java語言[1]。2002年7月份于San Diego舉行的BREW開發(fā)商大會上,IBM和Insignia展示了BREW環(huán)境下的JAVA virtual machine(JVM)。HP也將其MicrochaiVM平臺轉(zhuǎn)向了BREW。IBM將在WebSphere Studio Device Developer產(chǎn)品中提供一個BREW開發(fā)套件。
BREW SDK至今已發(fā)行多套版本,1.0, 1.1, 2.0, 2.1, 3.1,并且向下相容(backward compatible),目前最新的版本為3.14版。SDK是BREW所提供的是一組API函式集合,OEM開發(fā)廠商可以利用BREW建立用于無線裝置(現(xiàn)是無線電話)的應(yīng)用軟件。
對手機領(lǐng)域來說,BREW是一種輕型客戶端(thin client),大約占用150K左右的內(nèi)存空間,介于應(yīng)用程式軟件和底層系統(tǒng)軟件(Application Specific Integrated Circuit,ASIC)之間。因此,開發(fā)廠商可以于不相關(guān)裝置電路(device''''s chipset)或無線接口(air interface)的情況下,獨立開發(fā)BREW應(yīng)用程式。CDMA(Code Division Multiple Access) chipsets是QUALCOMM公司的專利(specialty),但是BREW一樣可以執(zhí)行在使用其他無線接口標(biāo)準(zhǔn)的手機上。
BREW SDK是免費提供的,但開發(fā)者仍須安裝Microsoft Visual C++ 6.0或其后續(xù)版本Visual C++.NET,方可使用由SDK提供的BREW Simulator來開發(fā)和測試應(yīng)用程式。BREW Simulator是一支Windows程式,可以類比電話上的AEE(Application Execution Environment)。應(yīng)用程式可以DLL的形式執(zhí)行于BREW Simulator中。因為DLL只能用于Windows平臺,BREW Simulator可以執(zhí)行這個DLL。目前市面上的手機大部分采用ARM kernel,非關(guān)于DLL檔。
BREW的應(yīng)用程式執(zhí)行環(huán)境(AEE)是一個精巧的軟件接口層。設(shè)備廠商將它集成在各自的軟件中,以支援BREW API和執(zhí)行環(huán)境。在一個新終端設(shè)備中提供AEE要求設(shè)備廠商只要移植AEE即可。此外,BREW Emulator中提供了一個AEE的Windows port,所以BREW Emulator可以執(zhí)行針對Windows的小程式。由于AEE占用的隨機內(nèi)存和快閃存儲器極小,適用于低端(low end)主流機型。
除了向應(yīng)用程式提供BREW API服務(wù),AEE同時管理著應(yīng)用程式的執(zhí)行,及時回應(yīng)用戶和一些緊急事件,比如說,一個正在執(zhí)行的BREW應(yīng)用當(dāng)有來電呼入時,可以自動立即暫停(suspend);并在通話完畢之后,再自動恢復(fù)(resume)工作。
在BREW環(huán)境中,Module是基本的組織單位。發(fā)展一個BREW 應(yīng)用程式可以從三個部份來解讀,Module, Applet, 以及Extension。一個Module可以包含一個以上的Applet,也可以包含一個以上的Extension,如下圖所示,Module A擁有一個Applet A, Applet A再引用Extension X;而Module X僅擁有一個Extension;至于Module B則擁有兩個Applets, 以及一個Extension。有些Module是出廠時的code space(OEM Module image),也有Module是通過下載方式(download)儲存于檔案系統(tǒng);這些Module依性質(zhì)可區(qū)分為靜態(tài)(static)和動態(tài)(dynamic),主要包括:dynamic Module(Applet),static Module(Applet)和dynamic extension class(Module)。
下列是 BREW 與 J2ME的比較。J2ME 有絕對的實力來對抗 BREW,從游戲軟件的開發(fā)角度來看,BREW有許多的優(yōu)點。
The BREW API 在支援電話上遠(yuǎn)超過 J2ME API。
API較J2ME簡潔有力。
圖形戲法更容易, BREW 2.0 可以直接存取屏幕緩沖區(qū)。
J2ME phones 經(jīng)常有二進(jìn)制碼大小的限制 (128KB is common)。BREW目前無此限制。
BREW是更底層的技術(shù),加上和CDMA 的完美結(jié)合,使BREW擁有了更快的反應(yīng)速度。
BREW 應(yīng)用程式可以是面向?qū)ο蟪淌皆O(shè)計(Object-oriented programming). 在 J2ME 里過多的類別會造成檔案大小的負(fù)擔(dān),一般被鼓勵以C語言的撰寫方式。此外,由于非原始狀態(tài)的型別(non-primitive types)使得J2ME 的陣列看起來更像類別(classes). 基于這個理由,J2ME仍常使用原始型態(tài)(primitive types)的平行陣列。
相較于J2ME之下:
在J2ME,來源碼跟資源默認(rèn)是被壓縮的。而BREW的碼是不被壓縮的。
J2ME 擁有較受歡迎的IDE開發(fā)平臺或元件,如Eclipse 以及 Netbeans,BREW則否,目前僅能Add-in在Visual C++上操作。
目前大多數(shù)的使用者會選擇二者兼用,或只用J2ME. J2ME 提供較低廉的成本(無測試成本)。此外,J2ME 在歐洲廣泛被使用,BREW 雄霸美國與日本市場。即使在美國,J2ME phones 的市場仍較大。
BREW 模擬器(BREW Emulator):開發(fā)人員可以測試無線應(yīng)用程式在一系列仿真設(shè)備Windows環(huán)境下運行的狀況。
BREW MIF編輯器(BREW MIF Editor):應(yīng)用模組的訊息檔(.mif)必須與該模組的dll文件同名?梢陨梢慌R時class id ,等到正式完成時必須向高通申請一正式id。每一個Module都需要有自我標(biāo)識的MIF檔,從BREW 3.1開始已經(jīng)強制如此,靜態(tài)(static)Module也需要有相應(yīng)的MIF。而在BREW3.1之前,對于靜態(tài)Module是沒有單獨的MIF檔的,但有一個AEEAppInfo的結(jié)構(gòu)體來表示Module的資訊,里面主要包括clsid,app type等資訊,每個靜態(tài)Module都需要有一個實例化的AEEAppInfo結(jié)構(gòu)體,BREW從此結(jié)構(gòu)中獲得必要的Module資訊。
BREW資源編輯器(BREW Resource Editor):用于創(chuàng)建應(yīng)用程序的資源,包括字串、圖檔等。編譯時將bri檔轉(zhuǎn)成bar檔。
BREW 1.0
BREW SDK版本1.0 不支持靜音插入。BREW 1.0 中,當(dāng)剩余使用次數(shù)為0 時,用戶將無法啟動應(yīng)用程式(Applet)。
BREW 1.1
使用 AEESoundTone AEE_TONE_SILENCE 插入一段靜音。BREW 1.0、1.1 和2.0 版本不支持播放WAV 檔。BREW 1.1 以上版本提供的 PureVoice Convertor Utility Tool 可以將 .WAV檔轉(zhuǎn)成 .QCP。
BREW 2.0
不對應(yīng)使用QVGA液晶的裝置。
BREW 2.1QVGA液晶の端末に??輟%簽`タフォルダやカメラ機能との連攜も可能になった。</dd>
BREW Extensionという機能が追加された。ネットワークを通して必要なプログラムが自動的にダウンロードされる機能である。例:マスコットカプセルエンジン。このExtensionにより3D描畫が可能となる。
BREW 3.0
支援可插式儲存媒體(USB),并能讓使用者更容易于將支援BREW的手機連接到鍵盤及個人電腦等裝置的序列接口(Serial Interface),用來讀取音樂播放檔或相片檔,可提升移動電話的多媒體功能。關(guān)于UI方面全新的BREW UI Toolkit(BUIT, BUIW)推出。
BREW 3.1
目前最新版本。高通于加州圣地牙哥舉行的BREW2004開發(fā)者大會上發(fā)布,新版本提出UiOne的構(gòu)想,擴展了對手機用戶UI的開發(fā)支持,如Menu Control、E-Mail等。