BREW究竟是什么-BREW本质之我见[转]

BREW究竟是什么-BREW本质之我见

作者: 东方欲晓  发布日期: 2005-9-18    查看数: <script src="http://expert.imobile.com.cn/function.php?action=view&tid=336&views=147" type="text/JavaScript" language="JavaScript"> </script>148   出自: http://expert.imobile.com.cn
为什么要写这篇文章:
  接触BREW已经4个多月了,虽然时间不是很长,但是对brew还是有一定的了解,也有一些我自己的见解。我是一个不喜欢单单为了做好工作而只去学习 对工作有用的东西,我喜欢刨根问底,喜欢知道一样东西究竟是什么。现在不管是作brew develop的,还是brew oem的,其实存在一个问题, 就是不是真正理解brew究竟是个什么东西,当然这并不直接影响他们的工作。但是,我个人认为,如果连brew究竟是什么都不知道,而去porting一 些接口,用一些接口,是显得很“空虚”,你不能乐在其中。曾经网上看到好多关于误解brew的一些帖子,现在我觉得有必要写一篇阐述brew究竟是什么的 文章。当然,我的见解也不是权威,也可能会错。只是将我理解中的brew呈现给大家,如果对你有帮助,我会很开心。如果有错误,请指正,或者相互探讨。

高通对brew的定义:
  有很多文档中都有对brew的定义,我也不想去查证哪一篇文档上有最权威的关于高通对brew的定义。我只是就我看过的一些高通的文档,总结归纳出高通对brew的定义。简单而言,高通对brew的定义就是:brew是一种无线移动网络中的端到端的解决方案。
BREW-4字母之我见:
  如上所说,brew是一种解决方案,那brew4个字母究竟是什么意思那。按照我的理解,B是针对j2me的虚拟机(解释)而言,说明brew的目标 文件是二进制代码,不是中间解释程序。R说明brew是动态加载机制,只有当需要运行的时候,代码才加载运行。E代表BREW不仅仅是一些接口API, BREW有自身的内核,有自身的执行环境(AEE环境)。W代表BREW是专门针对无线移动的解决方案。
BREW与操作系统:
  经常看到有人拿BREW和操作系统相比较,最多的莫过于和Symbian作比较。“你觉得BREW和Symbian哪个好?”“我觉得BREW没有 Symbian好”等等,诸如此类。其实,这两者根本没有可比性。BREW不是操作系统。本质上来说,BREW仅仅是运行于操作系统上的某个task中的 一个软件而已。BREW位于操作系统之上,BREW在手机上的实现需要操作系统服务的支持。从理论上来说,BREW可以在任何操作系统上被支持起来。所 以,不能将BREW和操作系统作比较,不具可比性。就好比你拿windows和vc作比较,那是很可笑的。
BREW和编程语言:
  另外经常看到有人拿BREW和java语言来作比较。这两者也根本不具有可比性。java是一种编程语言,编程语言用来编出软件。而BREW,你可以 把它看作是软件,至于是什么编出来的,你无需考虑。 这样的比较,就好比拿bt软件和python语言(bt软件的开发语言)作比较,也是很可笑的。另外 补充一点,虽然BREW环境的实现是用C语言,但是BREW应用的开发。“理论”上来说应该可以任何语言,目前主要是c,c++。其实,如果拿BREW和 J2me作比较,那才具有可比性。详细见下面一节。
BREW是中间件:
  更多的人是拿BREW和j2me来作比较,因为他们分别是现在联通和移动所倡导支持的。为什么具有可比性那。因为就我理解,他们都是中间件技术。brew是中间件!
  中间件位于操作系统(以及native软件)与上层应用之间。通过它,可以使得应用的开发变得可扩展,灵活和“标准”。
  首先,我们看看没有中间件出现时的手机开发模式。
  此时,整个手机的开发都是oem厂商完成的。他们在手机的操作系统上编写一个个的task代码,编写一个个特定功能的底层api函数和服务(我们称之 为native),然后再利用这些native的代码编写一些手机应用,比如电话簿,短信等等。此时,任何第三方都将无法进入这个行业,因为他们需要了解 这个手机的系统,以及这些native的api,才能开发上层应用。但是,通常这些都是保密的。所以,那个时候,几乎没有develop的存在,只有 oem。
  而中间件技术出现后,整个手机开发模式被改变了,我们以brew为例。
  我们把上面所讲的开发模式称之为纯native开发模式。而一旦handset被porting brew之后,那么在native之上就多了一个中 间层,即中间件。中间件(brew)定义了一套标准的接口(环境),这套标准的接口(环境)是面向上层的,面向develop的。而这套接口(或者环境) 的实现则是调用了native(以及操作系统)的服务,我们称之为porting。这样,中间件屏蔽了底层的差异性和具体实现,对上提供标准的接口。从而 催生了手机develop这个行业的出现。因为,他们无需考虑具体手机,只需要利用中间件提供的标准接口(环境)来开发可移植的应用。这种可移植性的本质 是因为,对于develop所呈现的“共性”是通过oem的“个性”来呈现的,并且通过中间件这样一种模式,屏蔽了这种共性和个性之间的联系。使得使用和 实现分离。达到了可移植性!
  说到中间件技术,其实现在最多提到的就是j2me,brew,mhp。j2me是通过jvm在不同平台上的porting来提供通用的java接口。 mhp是机顶盒上现在用的很多的中间件标准,具体的我就不是很清楚。另外,brew和j2me还是有区别的,因为j2me仅仅是一个瘦client型的中 间件技术,不涉及端到端的整套方案。而brew不仅仅指handset上的中间件(brew)同时还包括ads(服务器端),所以brew不仅仅是中间 件,完整的说,就是高通的定义,是一种端到端的解决方案。
BREW是设计模式:
  我对设计模式仅仅是初学而已,所以这里仅仅是我的见解而已。我认为,BREW是一种特殊的,可扩展的Facade设计模式。Facade模式的意图是 简化现有系统的使用方法,重新定制一种新的接口(或者方式),并呈现给client,使得client更容易的使用现有的系统。在没有brew出现之前, client(上层应用)使用系统(调用系统服务,达到特定功能)的方式是native的方式(直接调用操作系统或者native的api),这种使用系 统的方式非常复杂,而且通常对第三者不可用。通过brew,我在native基础上重新定制了一个新的接口(平台,环境,或者方式),并将它呈现给 client(上层应用)。这样,client通过这个新的接口(平台,环境,或者方式)同样实现了某种功能,但是却更加的方便。
  为什么又说是可扩展的Facade设计模式那。因为通常Facade模式中所说的定制的新接口所提供的服务往往是原有系统所能提供服务的子集。 BREW也如此,只能通过所有的Interface向client提供服务,当然不能包括整个handset理论上所能提供的所有服务。但是,我们知道 BREW本身是可伸缩的,比如可以由oem扩展接口,或者oem裁减掉一些接口,或者随着brew版本的更新也会扩展一些接口。这样,对client所提 供的服务也就具有伸缩性,所以我称之具有可扩展性。
  另外说是特殊的Facade模式,是因为Facade模式没有强迫所定制的新的接口需要是“标准”的接口。但是BREW对外提供的确是标准的接口。它使得cilent(应用)具有了可移植性,所以我称之为特殊。
结束:
  在这么多大虾的面前,对BREW妄加评论,无他,仅仅分享我的见解而已,如果对你有帮助,则有感一丝欣慰。如果有什么错误之处,还请指教。也请大家,相互交流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文档为开发者提供了开发 BREW 设备平台应用程序所需的 Binary Runtime Environment for Wireless™ (BREW™) 函数和数据结构的信息。 在本参考资料中 《BREW API 参考资料》的余下部分包括以下内容: BREW API 接口 按字母顺序列出 BREW 接口和函数。 助手函数 按字母顺序详列助手函数。 数据类型 按字母顺序详列 BREW 接口使用的数据结构。 每个函数的说明均提供了以下信息: 说明 函数用法的说明。 原型 一个调用结构的示例。 参数A 需要输入和返回的对象。 返回值 从函数调用返回的项目,包括多种类型、消息、值、结构和说明。 备注 帮助理解函数的用法、限制和边界的特殊说明和附加信息。 副作用 (仅在适当情况下) 使用函数调用时函数表现的任何异常行为。 除非存在副作用,否则不显示该标题。 版本 引入此函数的版本。 另请参阅 相关函数或数据结构的交叉参考。 A 注意: 仅当参数表包含混合类型时,参数列表才显示 [in]、[in/out] 和 [out]。 如果表中都是输入参数,将省略 [in]。 BREW 继承函数 每个继承函数均链接至其基类。 以下是继承函数条目的一个示例。 IBITMAP_AddRef() 此函数继承于 IBASE_AddRef()。 详细信息 BREW 应用程序开发者可以得到相关的联机信息和支持。 请访问 BREW 网站了解详细信息: www.qualcomm.com/brew/zh/developer。 请求 BREW 的新功能 如果您在使用 BREW SDK 的过程中对它的功能有任何意见和想法, 欢迎您按如下地址给我们发送电子邮件: brew[email protected]。 新功能反应小组将认真考虑您的每一个意见,并通过电子邮件尽快地给予您答复。 BREW™ 程序设计概念 本部分讨论以下 BREW 程序设计概念。 至主题 学习 BREW SDK 的组件 BREW SDK 中包括的组件。 组件如何交互 如何配合使用下载 BREW SDK 后得到的各种组件和工具。 BREW SDK 目录结构 BREW SDK 中文版的组织方式。 使用小程序和模块 在 BREW 中如何使用小程序和模块编译应用程序 DLL。 还包括一些关于创建小程序和实例,处理小程序事件的主题。 BREW 开发指导原则 如何避免常见错误和缩短测试、调试和修改 BREW 源代码的时间。 创建新的应用程序 创建新 BREW 应用程序的方法。 还包括一些关于使用应用程序向导、处理特定语言资源和使用浮点运算的主题。 访问外壳服务 如何利用 IShell、IBase、IModule 和 IApplet 接口使模块和小程序可以访问外部服务。 事件处理概念 如何处理事件,包括切换事件。 在 EFS 中访问文件或 API 与桌面文件系统(例如 Windows XP)相比,如何在设备的 EFS 上运行应用程序。 监测进入的 SMS 消息 BREW 电话层如何监测进入的 SMS 消息(如 DMA 设备的 IS-637 SMS 消息)。 管理短时计时器和设备睡眠 如何处理设备睡眠模式和短时计时器。 开发屏幕保护程序 如何在 BREW 中创建屏幕保护程序,包括将应用程序注册为屏幕保护程序的过程。 扩展 BREW API 如何使用 BREW API 扩展自定义 BREW API。 从第三方应用程序调用 MobileShop。 如何向您的应用程序添加 MobileShop URL。 文件系统名称空间和 ACL 在 BREW 中如何处理文件系统名称空间和 ACL。 BREW 安全模式 BREW 如何管理设备上有问题的应用程序。 内容安全 如何确保安全处理从因特网、SMS 消息和其它外部信息源接收的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值