高通 BREW 图标
**無線二進位執行環境**（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……等數十家電信業者採用。

開發技術
----

BREW的執行環境稱為BREW AEE（Application Execution Environment），這是一個中間層的應用，具有高效、低成本、可扩展性。一般所見到的BREW例子都是用C寫的，不過BREW開發是完全支持C++語言的，2003年宣布支援Java語言。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. ↑ .  [2021-12-30]. （原始内容存档于2021-12-30）.
2. ↑  BREW一旦偵測到user需要JVM，就會下載一個JVM for BREW

參見
--

* 智能電話
* 系統平台
* 移动应用开发（英语：） — 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中国开发者讨论组

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
 |
| --- |
|  |
| Linux内核 | 

|  |  |
| --- | --- |
| Android | 
* AliOS
* 百度雲OS
* CopperheadOS
* CyanogenMod
* Fira OS（英语：）
* Fire OS
* Hive UI（英语：）
* Indus OS（英语：）
* LineageOS
* MIUI
* 魔趣
* Nokia X Platform
* OPhone
* Replicant
* Resurrection Remix OS
* Ubuntu for Android
* Wear OS

 |
|  |
| SHR（英语：） | 
* OpenEmbedded
	+ Familiar Linux
	+ OpenZaurus（英语：）
	+ KaeilOS（英语：）
* Openmoko Linux
	+ Qt Extended
	+ Ångström Linux-based

 |
|  |
| 其他 | 
* Access Linux
* Bada (操作系统)
* EZX Linux（英语：）
* Firefox OS
	+ KaiOS
* LuneOS（英语：）
* MeeGo
	+ Mer
	+ Sailfish OS
* Moblin
* MontaVista
	+ Mobilinux
	+ MotoMagx
* Nokia Asha Platform
* PostmarketOS
* Tizen
* Ubuntu Touch
* webOS
	+ LuneOS

 |

 |
|  |
| XNU | 
* iOS
* iPadOS
* tvOS
* watchOS

 |
|  |
| QNX | 
* BlackBerry 10
* BlackBerry PlayBook OS

 |
|  |
| Windows | 
* Windows Mobile
* Windows Phone
* Windows XP Tablet PC Edition
* Windows RT
* Windows 8.1 with Bing
* Windows 10

 |
|  |
| Zircon | 
* Fuchsia

 |
|  |
| 其他 | 
* BlackBerry OS
* EPOC
* GEOS（英语：）
* 任天堂DSi
* 任天堂3DS
* Palm OS
* PSP
* PS Vita
* S30
* S30+
* S40
* Symbian
	+ MOAP（英语：）(S)
	+ UIQ
	+ S60
	+ S80
	+ S90

 |
|  |
| 相關平臺 | 
* 无线二进制运行环境（BREW）
* Java ME
* JavaFX Mobile

 |
|  |
| 
* 移动操作系统比较
* 行動軟體發行平台列表
* 開放手機聯盟
* 開放移動聯盟
* 流動應用程式開發（英语：）

 |

 |