Remove ads

无线二进制执行环境(Binary Runtime Environment for Wireless,简称BREW)为2001年美国高通(Qualcomm)公司所设计提出的3G系统最佳平台解决方案,可支持cdmaOneCDMA2000GSMGPRSUMTSWCDMA,技术上横跨电信、软件开发、手机厂等三大领域[1]。在编程语言支持方面,BREW可让使用C/C++语言开发的应用拥有更好的运行性能,同时支持其他开发语言包括JavaXMLFlash等。目前有美国Verizon Wireless中国电信、日本KDDI、韩国KTF、泰国Hutchison cat、澳洲Telstra墨西哥Iusacell、印度Tata、巴西VIVO、阿根廷Movicom、以色列Pelephone、委内瑞拉Telcel、乌拉圭的Movicom……等数十家电信运营商采用。

高通 BREW 图标

开发技术

BREW的执行环境称为BREW AEE(Application Execution Environment),这是一个中间层的应用,具有高效、低成本、可扩展性。一般所见到的BREW例子都是用C写的,不过BREW开发是完全支持C++语言的,2003年宣布支持Java语言[2]。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)。

Remove ads

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应用屏蔽了底层提供服务的平台差异。
Remove ads

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所有特性的同步接口。
Remove ads

注释

参见

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.

Remove ads