无线二进制运行环境

开发技术

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）。