BREW 4.x 极大的增强了BREW应用的内存保护,所有的BREW应用都可以在一个严格的“沙箱”环境中运行,从而保证一个应用导致的内存崩溃不会影响其他的应用,或者手机的底层软件以及系统软件。基于BREW4.x的应用可以方便的访问文件系统、手机设备以及其他的系统服务。
BREW4.X支持加载ELF文件,这意味着BREW应用可以使用全局变量了(尽管BREW中不推荐使用全局变量)。同时,这也使浮点操作成为可能,而且没有全局数据的扩展类就可以加载到共享的代码空间里,因而可以非常容易地移植其他平台的应用(例如Symbian,Windows Mobile上的应用)到BREW的平台上。
BREW 4.x完全改变了以前版本的系统构架(图11-14),是建立在 “组件服务”之上的,组件服务是新增的一层,用来支持进程,线程和模块的加载。
BREW4.x的内核抽象层即组件服务层,将应用框架与操作系统完全隔离开来,具有操作系统的独立性,支持Rex,Linux等多种嵌入式实时操作系统,为API的移植提供了高度的灵活性。BREW4.x支持模块和执行文件的动态加载,即运行时查询其他服务。
BREW4.x再往后演进就是移动平台BMP(BREW Mobile Platform)了。 BMP统一了各种软件技术,形成了单一的开放平台(图11-16)。在兼容现存BREW和扩展类的同时,融合了uiOne和J2ME,引进了多窗口技术,Lua, Flash等,丰富了用户接口和移动互联网的集成。
相对于移动互联网设备,BMP是一个开发的操作系统,为运营商,手机厂商和开发商提供免费的SDK。运营商和手机厂商能够灵活地控制和使用源代码,免费的SDK可以自由的下载使用而没有任何限制。BMP支持多种运行环境,为所有支持的技术提供了相应的仿真器,并且增强了开发工具以及面向互联网的web门户。BMP的应用层源代码对开发商是开放的,可以随意修改,定制和扩展应用,并且移动平台是与下载系统独立的。BMP的基础执行环境是跨系统的,手机厂商可以对其自由扩展。
对于用户界面而言,所有的BREW扩展和uiOne全部免费开放给开发商,例如BUIW,SQLite数据库服务,True type 字体引擎,TrigML与Lua的UI引擎等,并计划使用Eclipse作为开发工具的集成环境。应用可以创建多个窗口,由窗口管理器来控制布局、显示堆栈和表现行为等。BMP允许应用间共享显示区域,支持屏幕间切换的渐变效果,更重要的是,应用可以直接显示在待机屏上。
Flash Lite 是BMP中的一个优化过的Flash播放器,开发商可以完全使用Flash技术在手机设备上进行开发。LUA是另一个开源的脚本语言,与TrigML集成在一起,能够方便uiOne的开发,当然也可以使用Lua做任何想做的事情。
QVM 是一个基于标准的MIDP / CLDC的J2ME解决方案的BREW实现,是一个硬件加速的多任务虚拟机,支持大多数的JSR-248 MSA 特性(不考虑具体的商务授权)。由于是通过BREW API 实现的,并且与窗口管理器集成在一起,所以能够拥有和手机自身应用一样的性能。
BMP中的数据库服务才开始称得上是真正的数据库服务,是一个基于SQL的数据库实现,支持SQL语句查询并拥有数据同步机制。数据库的服务可以方便的对内容进行查找,排序和索引,内容即可以在本地的文件系统上也可以在外存卡上。BMP开始完善的支持触摸屏技术和POSIX API。POSIX (Portable Operating System Interface)是由电子和电气工程师协会(Institute of Electrical and Electronic Enginees,IEEE)提出的一系列标准,用于定义一个可移植的操作系统接口。实际上,Linux为什么与UNIX这么相象, 原因之一就在于Linux遵循POSIX标准.
BMP 对内容管理提供了强大的支持,IMedia 开始支持OMA 和Janus(微软的DRM机制) 的内容保护。