BREW概述
, `3 t# h& X; @- ?# ?+ I, L; P u) c* [
BREW(Binary Runtime Environment for Wireless,無線二進制運行環境),是高通公司推出CDMA網絡 "無線互聯網發射平臺" 上增值業務開發運行的基本平臺。它提供一個高效、低成本、可擴展和熟悉的應用程序執行環境(AEE), 著重開發可無縫植入任何實際手持設備的應用程序。與建立在對內存空間、處理器速度和相關硬件有較高要求的操作系統之上的高端產品不同,BREW 在現有的設備類型上運行。傳統上,人們熱衷于能否利用高速ASIC(特定用途集成電路)技術實現新的應用功能,甚至在低端設備上,要使用更多的功能則需要無縫集成,F在,BREW提供的功能環境就好像PC機上的操作系統一樣,可以通過服務提供商下載指定類型的應用程序或游戲來使用。同時,通過BREW接口功能,供應商可以提供成套的完整的資訊、商務、娛樂功能。在將來的版本中,BREW內核類將能提供諸如藍牙技術、全球定位系統(GPS) 和基于數據業務的電話等服務。 / U8 v. U/ K" o- \
$ s& p9 [: }5 U$ N/ I& `0 a6 u
BREW提供了一套應用程序接口(API),制造商和開發人員可以隨時對運行環境進行擴展,提供應用程序需要的各種附加性能模塊,如"無線互聯網發射平臺"中包含的多媒體、多種連接方式、位置服務、用戶界面、網絡等功能套件。 " d, L! b7 n; h# Q7 _* g
5 D2 ]6 F: D! ^0 V
開發應用
0 M; I5 o) ]0 @+ \ S- w# v* S8 I0 r+ C+ ]- n0 f& k' J- M1 T9 H
BREW 為應用程序開發者提供了一個功能豐富且使用方便的環境,使其能夠利用美國高通公司的移動基站調制解調器(MSM) ASIC 的已有及新增的功能開發新的軟件,以適應增值業務發展的需要。BREW 的面向對象可充分擴展的應用程序執行環境,允許使用C 或C++ 開發小程序和共享模塊。同時,它還支持Java和XML 等語言。 / Q8 F% m( H% {! } j
& \# ^& ?) i: k5 Z3 L8 e
BREW 提供了一套完善的對象技術,使開發者可以非常方便開發基于圖形的應用服務:
4 @) `. K; u, G7 E+ a8 A/ \1 c+ a6 [8 t# z1 R: B6 V
: K2 L2 X+ E! {/ v7 c1 h- h* S應用程序服務,支持簡單的、基于事件的AEE內核服務支持,對文件、網絡服務、內存和屏幕的訪問增強型服務,例如增強圖像性能(互動的游戲)、聲音播放器(優質的音樂)、GPS 和語音服務綜合服務,使應用程序開發者可以利用諸如瀏覽器、Outlook所支持的服務
3 v5 a0 W2 z d; t7 m9 R8 E0 Q7 F) V7 S& T) ?
從運行環境和效率上看,BREW提供以下支持: # z9 q5 R" T9 ^6 v) M+ m V" }
* O1 @) r! g" w5 ]1 @3 l
, k2 O7 [7 d1 ?" x% n& _BREW可有效地利用RAM 和持久存儲器。BREW 可以在需要時加載或卸載使用的對象或內存BREW應用程序環境支持人們熟悉的與Microsoft Windows、 Macintosh 或UNIX X-Windows 類似的事件驅動結構本地化BREW小程序非常方便所有文本按Unicode 處理,并以所選語言可支持的最有效的方式儲存。BREW 還支持OEM的本地文本格式業務模塊可以在對象代碼級集成,便于設備開發商和第三方生產商為BREW 平臺添加應用模塊BREW提供了內核類可與設備平臺進行對接
* r9 O1 a8 |* f( l4 k0 ^! e
8 n& z1 v$ W* P. P1 }2 Z2 k/ z0 |7 {8 p) D+ T
在應用開發上,BREW為各種手持設備快速、高效、經濟地開發和配置新的應用程序提供了方便,BREW SDK開發包提供基于C/C++、Java等編譯環境的運行庫和面向對象的類結構,包含了各種有效的系統調用、用戶接口、多媒體集成和網絡套接字等類對象資源,開發者對BREW的開發就好像在Windows平臺上編程,有種類繁多、功能強大的庫函數調用一樣,開發者不必關心低級平臺數據結構和設備驅動程序,因為應用程序和設備平臺可以完全通過適當定義的類對象進行交互。而且,它還支持在程序中直接使用字符串、圖片、聲間、對話框等自定義資源,從而達到交互、生動的效果。目前,BREW應用主要集中在移動文本通信(電子郵件、SMS)、信息服務(新聞、天氣、影視、搜索等)、定制服務(個性化代理、時尚)、位置服務(M2M、定位導航)、多媒體娛樂(數據流視頻、互聯網音頻)和游戲(離線、在線)等方面。
% w$ A' `* V1 f. k) [: [: @* L4 u' g+ p0 ^1 ?
業務模塊開發流程
* H3 R- x3 K/ O* x8 _. X
2 ?1 k, u- @1 L% [BREW開發增值業務是以模塊為單位,每一模塊可能含一個或多個小程序(Applet),模塊的調用(以Windows平臺為例,以下同)是從module_main入口開始,提供以Windows動態庫類型的小程序為運行單位。業務模塊的開發可以獨立和同時開發,從而最大限度地縮短開發時間,回避復雜的集成問題。 / f' v K/ w% Y: N6 Y
, X+ n0 i# W! G8 H- {! W% u
BREW 中的每個類或小程序必須擁有一個唯一的ClassID,在BREW SDK中,提供了ClassID編程器---生成后綴為MIF的文件,它包含支持的類、支持的小程序以及小程序標題。啟動時,BREW 會在設備屏幕上列舉MIF文件,并保存從MIF 列舉收集來的信息,以便在請求類時使用。
! k. E m p5 N% ]! T
. t# F1 V% {0 S! N1 H- M創建實例
, W' d) d$ D/ R+ h' V) ^
7 B5 |5 t' a( F* I8 bBREW 用于支持小程序和模塊創建的機制是ISHELL_CreateInstance 方法。該機制是BREW 模型的核心,也是BREW 支持的最強大的API 之一。調用該方法時BREW 將在支持的類列表中搜索指定的32 位已注冊的ClassID。該列表包含內核BREW API支持的條目,另外還包含添加到系統的所有類和小程序,系統啟動時會通過MIF 列舉進行檢測。 2 P( U# {2 ]$ G0 w" q# ^
& T0 B* `4 L# ^+ I9 z+ r7 c& ?# R類通過BREW 模塊支持的IMODULE_CreateInstance方法來創建。BREW 將根據需要加載模塊,加載后BREW 將使用其IModule 實例創建請求的類。一個模塊的所有對象在創建時必須增加其IModule 的引用計數,而在釋放時減少IModule 的引用計數。模塊在該模塊IModule 類的引用計數變為零之前,模塊會保持加載的狀態,一旦引用變為零,BREW 將自動釋放與該模塊相關的所有內存。這種方法的象Windows編程中使用COM 對象一樣;創建實例的過程基本上是統一的,程序員一般必干預此過程,這樣有利于開發和運行的效率。 ' ]8 k# V+ R; {4 E
! c: h3 y5 A9 u1 l9 \2 G
創建和中止小程序
; z8 y" \6 j3 J9 C( b, Z1 d6 e7 j8 [6 @) {
在BREW 模型下,小程序是支持IApplet 接口方法的類。這樣BREW 便可以使用相同的簡單接口管理所有的小程序。
; N! |4 o* O7 g8 A) D
/ E& \" [% _5 Z8 G2 I, v0 NBREW 在兩種情況下創建小程序:
2 q u$ ?% I( b8 P% |
1 B! d S% T/ K; E9 G
; I% Y# m$ q; e* q! ^1 t應ISHELL_StartApplet 方法的要求創建小程序。該方法可以創建小程序,小程序生成以后,將立即發送EVT_APP_START 事件,通知小程序已處于激活的狀態并可以調用其它用戶接口類如繪制屏幕、彈出對話框等為處理已注冊的通知、警報等創建小程序,小程序生成后會立即收到特定的通知事件 u' q: i4 O% ~2 U% }0 L
- M" |& ]' g3 d% e+ X' s4 d+ x0 g+ N1 ^5 b4 Y
中止小程序通過由BREW系統自動調用Release方法完成,只要在Release方法中加入釋放自定義的內存和資源即可。 - }" ^% F1 Q3 n5 V: m
, j. _7 P9 J0 z) C處理小程序事件 & {9 {& l. i: J; g/ |' z2 N
* J% Q4 j3 N6 Y, P7 I! t L
事件處理是BREW編程中最重要的過程,來自無線網絡、BREW系統、OEM驅動程序、用戶接口輸入的所有事件將通過ISHELL_SendEvent 方法發送給小程序,事件的發送可以同步,也可以異步進行。一般情況,發送給小程序的事件包括鍵區、對話和控件更改事件。
; Y f5 m* Q' X S2 k- U$ D, c, U) e6 E; c+ |& _. t$ Y% w
通常,小程序僅需處理少數事件,這些事件可以是EVT_APP_START、EVT_APP_STOP、EVT_KEY和EVT_COMMAND。如果小程序不處理事件,其HandleEvent方法必須返回FALSE。這樣可以使BREW對該事件進行任何必要的特殊處理。
! i8 i1 I; q1 u: m% f, c; T' J; i4 u, v$ Z* _ [4 M# }! x
通過對事件的響應,小程序將自動調用對應的方法如繪制屏幕、顯示圖片、播放MP3、彈出對話框等。通常的處理方法中包含了以下可供調用的類對象:外殼服務、時間/計時器、通知、內存管理、文件管理、數據庫管理、網絡和套接字、HTTP、下載和結算、顯示、圖像(顯示、轉換、動畫)、圖形、聲音播放器(播放MIDI 和MP3 文件)、聲音(產生鈴聲警告聲和播放音頻文件)、標準幫助功能庫和用戶控件如對話框、日期控件、菜單控件、文本編輯控件、時間控件、靜態文本控件。 0 d$ Z: s* e/ v: w6 b5 Q& h8 J
/ c; @) B% s" F: h
測試
- q1 S1 H$ @# g+ F& x
; y, {* E4 w5 {& y2 C' z. gBREW SDK提供了一個電話模擬器,供程序開發人員設計、定制用戶界面,配置新設備和測試應用軟件,并可以動態監視業務程序的內存使用。它基本上可以模擬真實環境的測試狀態和效果。