无线二进制运行环境









無線二進位執行環境(Binary Runtime Environment for Wireless,簡稱BREW)為2001年美國高通(Qualcomm)公司所設計提出的3G系統最佳平台解決方案,可支援cdmaOne/CDMA2000/GSM/GPRS/UMTS/WCDMA,技術上橫跨電信、軟體開發、手機廠等三大領域。在程式語言支援方面,BREW可讓使用C/C++語言開發的應用擁有更好的運行效能,同時支援其他開發語言包括Java、XML和Flash等。目前有美國Verizon Wireless、中国电信、日本KDDI、南韓KTF、泰國Hutchison cat、澳洲Telstra、墨西哥Iusacell、印度Tata、巴西VIVO、阿根廷Movicom、以色列Pelephone、委内瑞拉的Telcel、乌拉圭的Movicom……等數十家電信業者採用。




目录






  • 1 開發技術


  • 2 BREW的優點


  • 3 BREW的缺點


  • 4 組成


  • 5 版本


  • 6 注釋


  • 7 參見


  • 8 外部連結


    • 8.1 主要发布商


    • 8.2 应用程序开发公司


    • 8.3 相关论坛







開發技術


BREW的執行環境稱為BREW AEE(Application Execution Environment),這是一個中間層的應用,具有高效、低成本、可扩展性。一般所見到的BREW例子都是用C寫的,不過BREW開發是完全支持C++語言的,2003年宣布支援Java語言[1]。2002年7月份於San Diego舉行的BREW開發商大會上,IBM和Insignia展示了BREW環境下的JAVA virtual machine(JVM)。HP也將其MicrochaiVM平台轉向了BREW。IBM將在WebSphere Studio Device Developer產品中提供一個BREW開發套件。


BREW SDK至今已發行多套版本,1.0, 1.1, 2.0, 2.1, 3.1, 4.0.4,並且向下相容(backward compatible),目前最新的版本為4.0.4版。SDK是BREW所提供的是一組API函式集合,OEM開發廠商可以利用BREW建立用於無線裝置(現是無線電話)的應用軟體。


對手機領域來說,BREW是一種輕型客戶端(thin client),大約佔用150K左右的記憶體空間,介於應用程式軟體和底層系統軟體(Application Specific Integrated Circuit,ASIC)之間。因此,開發廠商可以於不相關裝置電路(device's chipset)或無線介面(air interface)的情況下,獨立開發BREW應用程式。CDMA(Code Division Multiple Access)chipsets是QUALCOMM公司的專利(specialty),但是BREW一樣可以執行在使用其他無線介面標準的手機上。


BREW SDK是免費提供的,但開發者仍須安裝Microsoft Visual C++ 6.0或其後續版本Visual C++.NET,方可使用由SDK提供的BREW Simulator來開發和測試應用程式。BREW Simulator是一支Windows程式,可以類比電話上的AEE(Application Execution Environment)。應用程式可以DLL的形式執行於BREW Simulator中。因為DLL只能用於Windows平台,BREW Simulator可以執行這個DLL。目前市面上的手機大部分採用ARM kernel,非關於DLL檔。


BREW的應用程式執行環境(AEE)是一個精巧的軟體介面層。設備廠商將它集成在各自的軟體中,以支援BREW API和執行環境。在一個新終端設備中提供AEE要求設備廠商只要移植AEE即可。此外,BREW Emulator中提供了一個AEE的Windows port,所以BREW Emulator可以執行針對Windows的小程式。由於AEE佔用的隨機記憶體和快閃記憶體極小,適用於低端(low end)主流機型。


除了向應用程式提供BREW API服務,AEE同時管理著應用程式的執行,及時回應用戶和一些緊急事件,比如說,一個正在執行的BREW應用當有來電呼入時,可以自動立即暫停(suspend);並在通話完畢之後,再自動恢復(resume)工作。


在BREW環境中,Module是基本的組織單位。發展一個BREW 應用程式可以從三個部份來解讀,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)儲存於檔案系統;這些Module依性質可區分為靜態(static)和動態(dynamic),主要包括:dynamic Module(Applet),static Module(Applet)和dynamic extension class(Module)。



BREW的優點


下列是 BREW 與 J2ME的比較。brew 有絕對的實力來對抗 j2me,從遊戲軟體的開發角度來看,BREW有許多的優點。



  • The BREW API 在支持電話上遠超過 J2ME API。

  • API較J2ME簡潔有力。

  • 圖形開发更容易,BREW 2.0 可以直接存取螢幕緩衝區。

  • J2ME phones 經常有二進位碼大小的限制 (128KB is common)。BREW目前無此限制。

  • BREW是更底層的技術,加上和CDMA 的完美結合,使BREW擁有了更快的反應速度。

  • BREW 應用程式可以是物件導向程式設計(Object-oriented programming)。在 J2ME 裡過多的類別會造成檔案大小的負擔,一般被鼓勵以C語言的撰寫方式。此外,由於非原始狀態的型別(non-primitive types)使得J2ME 的陣列看起來更像類別(classes)。基於這個理由,J2ME仍常使用原始型態(primitive types)的平行陣列。


BREW的开发优势



  1. 对于运营商而言,BREW技术与网络完全无关。这意味着它可以完全平等地应用于所有领先的无线技术之中。

  2. 对于设备制造商而言,BREW应用运行环境可以同移动设备闪存和RAM中的处理芯片紧密集成,从而实现广泛适用性、软件开发变得更加顺畅,效率得到提升。

  3. 对于应用开发商而言,BREW执行平台基于普及型编程语言C/C++,这种语言拥有庞大的用户群,他们只需掌握很少的移动电话知识即可实现BREW支持。

  4. 3G平台EVDO的推广也为BREW带来了新的机会.

  5. BREW平台提供了一系列规范的服务接口,简化和规范了基于BREW的应用开发。

  6. BREW平台版本也在不断的演进1.x->2.x->3.x->4.x->BMP

  7. BREW平台作为一个承上启下的关键中间层,对上层BREW应用屏蔽了底层提供服务的平台差异。



BREW的缺點


相較於J2ME之下:



  • 在J2ME,來源碼跟資源預設是被壓縮的。而BREW的碼是不被壓縮的。

  • J2ME 擁有較受歡迎的IDE開發平台或元件,如Eclipse 以及 Netbeans,BREW則否,目前僅能Add-in在Visual C++上操作。


目前大多數的使用者會選擇二者兼用,或只用J2ME. J2ME 提供較低廉的成本(無測試成本)。此外,J2ME 在歐洲廣泛被使用,BREW 雄霸美國與日本市場。即使在美國,J2ME phones 的市場仍較大。



組成



  • BREW 模擬器(BREW Emulator):開發人員可以測試無線應用程式在一系列仿真設備Windows環境下運行的狀況。

  • BREW MIF編輯器(BREW MIF Editor):应用模組的訊息檔(.mif)必须與该模組的dll文件同名。可以生成一臨時class id ,等到正式完成時必須向高通申請一正式id。每一個Module都需要有自我標識的MIF檔,從BREW 3.1開始已經強制如此,靜態(static)Module也需要有相應的MIF。而在BREW3.1之前,對於靜態Module是沒有單獨的MIF檔的,但有一個AEEAppInfo的結構體來表示Module的資訊,裡面主要包括clsid,app type等資訊,每個靜態Module都需要有一個實例化的AEEAppInfo結構體,BREW從此結構中獲得必要的Module資訊。

  • BREW資源編輯器(BREW Resource Editor):用於創建應用程序的資源,包括字串、圖檔等。編譯時將bri檔轉成bar檔。



版本



BREW 1.0

BREW SDK版本1.0 不支持靜音插入。BREW 1.0 中,當剩餘使用次數為0 時,用戶將無法啟動應用程式(Applet)。

BREW 1.1

使用 AEESoundTone AEE_TONE_SILENCE 插入一段静音。BREW 1.0、1.1 和2.0 版本不支持播放WAV 檔。BREW 1.1 以上版本提供的 PureVoice Convertor Utility Tool 可以将 .WAV檔转成 .QCP。

BREW 2.0

不對應使用QVGA液晶的裝置。

BREW 2.1

BREW 3.0

支援可插式儲存媒體(USB),並能讓使用者更容易於將支援BREW的手機連接到鍵盤及個人電腦等裝置的序列介面(Serial Interface),用來讀取音樂播放檔或相片檔,可提升行動電話的多媒體功能。關於UI方面全新的BREW UI Toolkit(BUIT, BUIW)推出。

BREW 3.1

高通於加州聖地牙哥舉行的BREW2004開發者大會上發布,新版本提出UiOne的構想,擴展了對手機用戶UI的開發支持,如Menu Control、E-Mail等。

BREW SDK 4.0.4

目前最新版本。为OME厂商和第三方开发者提供一种环境去开发运行BREW 4.0.4上运行的设备和程序。这个版本的SDK具有一种新的对于通话记录、信息、日历、和电话本以及BREW 4.0.3所有特性的同步接口。



注釋





  1. ^ BREW一旦偵測到user需要JVM,就會下載一個JVM for BREW




參見



  • 智能電話

  • 系統平台


  • 移动应用开发英语Mobile development — How BREW stacks up against the alternatives on mobile platforms.

  • J2ME

  • WIPI



外部連結



  • BREW

  • In-depth discussion of BREW and other mobile platforms from European market perspective

  • BREW Gaming

  • Brew Test Unit - a unit testing framework for the Brew platform.



主要发布商



  • Digital Orchid

  • EA Mobile

  • Glu

  • NIM

  • Namco Wireless



应用程序开发公司




  • Advanced Mobile Applications[永久失效連結]

  • Econz

  • Remoba Inc

  • RiffWare

  • Rocket Mobile

  • Comprehensive List



相关论坛


  • BREW中国开发者讨论组




Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?