《深入BREW开发》——第五章BREW简介第五章BREW简介在移动通讯领域,不可变化的应用程序抑制了消费者的使用兴趣,亟需一种可以实现类似Windows的图形化系统,在这个系统上,可以容易的开发应用程序,同时支持应用程序的安装和管理等功能。当然,少不了的要求是系统不能过于庞大,小巧似乎是移动通讯设备永恒的主题,对于软件也不例外。在这样的背景下,美国高通公司凭借其在CDMA2000平台上的霸主地位,开发出了BREW,并率先在CDMA2000的平台上使用。随着CDMA在中国的使用,BREW也走进了国人的视线,于2002年进入中国。在3G时代即将到来之时,BREW也被应用到了高通的WCDMA系统中,可以说BREW已经成为了高通平台图形化界面开发的主力军,不但现在再用,将来也还会用。使用BREW官方的说法:BREW是由美国高通公司开发的、应用于无线通讯设备的、进行无线动态应用程序的下载和管理的跨平台的集成开发环境。这句话充分的说明了BREW的定位、功能和特性。BREW定位于无线通讯设备,简洁高效是无线通讯设备的必备特点;功能就是实现无线动态应用程序的下载和管理,这是它的主要功能,当然现在BREW的一个用途就是做为用户界面开发的平台,而且这个功能大有愈发流行之趋势;特性就是跨平台,由于BREW是使用C语言开发的,因此理论上在任何平台上都可以运行。最后的,BREW是一个集成开发环境,其中包含了PK(PortingKit,BREW移植包)和SDK两部分,PK是集成在移动通讯设备代码映像里的,SDK是基于Windows的开发工具包。在这一章里,将主要介绍BREWSDK的安装及其使用等内容,关于PK部分在后续的章节中会有所介绍。5.1BREW是什么?BREW是BinaryRuntimeEnvironmentforWireless(无线二进制运行时环境)几个英文单词的缩写,从这几个单词中我们可以看到BREW的基本特性:1、二进制(Binary):BREW的API是一组二进制的库和组件的集合,生成的目标程序是可以直接在二进制环境下执行的CPU指令。这代表了BREW的应用程序是高效的,无须经过任何中间层的转换。2、运行时(Runtime):BREW的应用程序及扩展是在运行时发现,并根据需要载入运行的,区别于传统的“大映像”模式的程序方法。这不但代表提供了一个运行时的支持,同时也说明BREW采用了按需载入的方式,最节约系统资源。3、环境(Environment):一个开放灵活的针对无线通讯设备的客户/服务器环境。正是这样的一个结构,才彻底改变了手持设备上单一应用程序的尴尬局面。同时也正是因为BREW提供了一整套的解决方案,才培育出BREW应用程序的生存环境。4、无线(Wireless):特别针对无线通讯设备而设计的。这代表了他的要求是简洁高效,而且可以随时随地与网络联系,方便快捷。5.1.1BREW系统的组成整个BREW系统由开发平台、运行平台和服务器三个要素组成。开发平台就是我们所使用的BREWSDK,用来在PC端开发可以在运行平台运行的程序。运行平台就是指可以运行BREW应用程序的移动通讯设备上的BREW运行环境,它的核心是BREW的PortingKit。服务器是连接开发和运行平台的一个“连接器”,开发平台所开发出的BREW应用程序放在服务器上,以便于运行平台的用户通过无线通讯网络下载应用程序,其核心是ADS(ApplicationDownloadServer)服务器,ADS和其他的辅助工具合起来统称为BDS(BREWDistributionSystem)系统。在整个BREW系统中这三个要素缺一不可,没有了哪一个都会让BREW显得不完整。它们之间的关系如下图:图5.1BREW三要素之间的关系在图5.1中,MobileShop是BREW设备上管理应用程序下载部分的程序,意思是像一个商店一样可以买程序。ApplicationManager是管理下载应用的程序。这两个部分都属于BREW运行平台的一部分,而且是两个特殊的BREW应用程序。基本的流程就是使用BREWSDK开发的程序交给BDS,BDS经过内部处理后,会根据应用程序所支持的BREW设备,放在该设备的可下载程序列表中。BREW设备的使用者通过MobileShop来获得可下载列表,通过网络下载感兴趣的应用程序,同时支付相关的费用。BREW的三要素分别对应了BREW产业链里的三个主体,开发平台对应了BREW应用程序的开发者,服务器代表了运营商,运行平台代表了BREW设备的使用者也就是用户。用户通过BREW下载自己喜欢的程序,获得使用应用程序的乐趣,同时支付报酬。运营商通过对用户应用程序的下载获得收入,而开发者则从运营商的用户下载收入中获得报酬。BREW设备制造商也是这个产业链中的的重要一环,为什么我的设备上要支持BREW呢?其实,原因就是我可以通过支持BREW提升设备的价值,从而提升利润空间。而且BREW还可以担当一个设备的用户界面开发平台的角色,可以简化设备用户界面的开发时间,从而减少开发成本。这是一个多赢的产业链,以此可以获得各方的支持。5.1.2BDS系统BREW三要素之间,BDS处于中心地位,而且也承担了许多关于BREW的幕后工作。BDS主要是由运营商主导的一个BREW下载的控制中心,其主要的任务是维持整个BREW产业生态链的生存环境。虽然BDS对于BREW技术本身没有多大的意义,但是,它确是BREW产业生存的核心内容。通过对它的了解,我们可以知道BREW的地位和用途,这样也可以反过来影响我们对BREW的理解。现在我们就来看看BDS系统的内部结构,如图5.2:图5.2BDS系统图中虚线左半部分属于由高通公司统一控制的部分,右半部分属于运营商控制部分。通常应用程序的开发者提交应用程序给高通公司,然后进入整个BDS系统的处理流程。首先应用程序进入测试系统,需要通过一个叫做TrueBREW的测试,之后进入认证系统进行应用程序的注册,然后将应用程序放置到BREW应用程序的管理系统中。最后,应用程序的开发者将通过BREW的计费系统,根据应用程序的下载次数获得报酬。在BREW设备的用户端,通过与运营商的ADS服务器联系,获得应用程序,同时支付相关的下载费用。系统会通过运营商事务处理系统和BREW事务处理系统的联系支付相关的下载费用给应用程序的开发者。这样就完成了整个BREW价值链之间的连接,BREW的整个生态环境通过BDS系统得以维持。5.1.3BREW设备系统架构BREW设备是整个BREW产业链中的终点,为整个产业输送资金血液,整个产业的生存都取决于BREW设备。BREW设备是BREW的运行平台,这个平台的核心是BREWPortingKit,也就是支持BREW应用程序运行的软件库和资源的集合,是BREW赖以生存的土壤。BREW设备的系统架构如图5.3所示:图5.3BREW设备系统架构在BREW内部,分为OEM和AEE层。AEE层是BREW的接口层和内核所在的位置,应用程序就是通过一定的方法来调用AEE层的方法,来调用BREW函数库中的函数。OEM层是提供给BREW设备制造商用来实现BREW底层接口的层次,也就是说,一个平台上如果需要支持BREW,那么就需要将在这个平台上实现BREWOEM层的函数,通常这个平台与某种专用集成芯片极其操作系统有关,例如基于X86芯片架构的Windows操作系统和基于高通公司CDMA系列芯片的RTOS实时操作系统。OEM层的接口函数分为两种,一种是MIL(MobileInterfaceLayer),另一种是CHIL(ChipInterfaceLayer)。MIL层对应的是专用芯片组外围设备的驱动,典型的设备是LCD显示屏。CHIL层对应的是芯片组功能函数,典型的功能如TAPI(呼叫处理)、SMS、Socket网络接口等。BREW的软件架构就是在这样的分层结构中,一层一层的封装,完成了AEE层提供给应用程序的一组API函数,应用程序位于这个层次的最顶层。如果您问我为什么BREW要分层的话,那么我会告诉您,这个原因和您写程序时要分函数的道理是一样的,就是因为程序变得多了,我们才将它们横向分成不同的层次,纵向分成不同的模块,每个模块又分成了好多的函数。软件的难点就在于这些层次的划分,模块的划分,函数和API的定义和划分。当然,现在我这样的介绍BREW的架构,目的是让您能够有一个总体的概念。您不必现在就细细的研究,可以在您已经对BREW有了一定的认识之后再体会这些架构的意义。5.2BREWSDK的安装BREWSDK运行于Windows2000/XP及其以后的操作系统中,BREWSDK的安装十分简单,就像是安装其他的Windows应用程序一样。我们可以免费的从高通公司的网站上获得BREWSDK,它目前采用的是在线安装方式,需要我们连接到高通的网站上才能下载安装,要求使用InternetExplorer5.5及其以上的版本。高通公司的网址如下:=dx/zh/如果您不能进入这个页面,证明您还没有注册。这个注册十分的简单,只需要输入您的E-mail地址就可以了。注册页面可以通过如下连接方式进入:的环境变量和安装程序组,在这个程序组里面就是BREWSDK中的内容了,接下来我们就来看看BREWSDK的组成。5.3BREWSDK的组成BREWSDK中包含了一组工具和组件,应用程序开发者可以通过这些工具和组件高效、快速的开发出多种多样的应用程序,这些工具和组件包括:1、BREWAEE。BREWAEE是一个可扩展的面向对象的应用程序开发和执行环境,它提供了一个使用C/C++开发应用程序和共享模块的平台,同时它采用了类似Windows等操作系统的事件驱动程序运行方式。2、BREW模拟器(Emulator)。BREW模拟器是一个用来载入并测试我们所开发应用程序的前端图形用户界面(GUI)。模拟器中可以预载入很多设备的模拟文件,同时也可以自己定制相应的模拟设备,如屏幕大小,按键数量等。模拟器是对BREWAEE在设备上运行环境的一个模拟。3、设备配置器(DeviceConfigurator)。从BREW3.0开始设备配置器从BREW标准的SDK中提取出来了,变成了一个独立的单元,如果需要使用这个功能的话,必须从高通网站上下载安装。通过它我们可以创建在BREW模拟器中使用的设备文件。4、资源文件编辑器(ResourceEditor)。BREW应用程序中使用的字符串、图片等数据都是从资源文件中获取的,这个工具就是用来完成BREW资源文件编辑的。而且,由这个工具生成的资源文件,在Windows模拟器中与在BREW设备中的事一样的。5、MIF文件编辑器(MIFEditor)。BREW的每一个Applet都需要有一个MIF(ModuleInformationFile)文件,这个文件中包含了载入当前模块的必要信息。6、BREW头文件。这些头文件中定义了BREW的接口、使用的常量以及结构体类型等。这些头文件与在BREW设备上运行的PK中的头文件是一致的,否则在SDK中开发的应用程序就不能在BREW设备上运行了。7、VisualStudio插件。这些插件是用来建立BREW应用程序项目时,在VisualStudio中的向导,通过这些向导可以很容易的构建BREW应用程序的框架。从BREW3.0开始,VisualStudio向导已经不是BREWSDK安装包中的一部分,需要单独下载安装。在安装之前需要在系统中装有VisualStudio6.0或更新的系统。通过上面的这些工具之间交互使用,我们就可以方便的构建一个BREW的应用程序。它们之间的交互关系请看图5.4:图5.4BREW组件之间的交互从图中可以看出,BREWSDK中处于核心地位的是BREW模拟器,其他工具都是为它服务的。在这里需要特别说明的是,在BREW3.0之后的BREWSDK版本的