For faster navigation, this Iframe is preloading the Wikiwand page for 无线二进制运行环境.

无线二进制运行环境

建议将BUIW并入此条目或章节。(讨论
高通 BREW 图标

无线二进制执行环境(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 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)。

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

参见

外部链接

主要发布商

应用程式开发公司

相关论坛

{{bottomLinkPreText}} {{bottomLinkText}}
无线二进制运行环境
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?