无线二进制运行环境(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有许多的优点。

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. J2ME 提供较低廉的成本(无测试成本)。此外,J2ME 在欧洲广泛被使用,BREW 雄霸美国与日本市场。即使在美国,J2ME phones 的市场仍较大。

组成

版本

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所有特性的同步接口。
139001.net
问题反馈联系QQ:1215,也可发qq邮箱