BUIW:(BREW User Interface Widget) BREW用户界面的窗口控件系统。
ABUIWF:(Applet BUIW’s Form) 应用的BUIW窗口
ABUIWW:(Applet BUIW’s Widget ) 应用的BUIW控件
MWMS: (Mini Windows Management System) 微型窗口管理系统
CDRMS:(Common Data Resource Memory Share)公共数据资源内存共享
CDROI:(Common Data Resource Object Install)公共数据资源对象安装
CDROS:(Common Data Resource Object Share) 公共数据资源对象共享
CDROU:(Common Data Resource Object Uinstall)公共数据资源对象卸载
I/O: (Input and Output) 输入与输出
作为高通软件系统的BUIW子系统,是平台应用架构中处在应用层之下,BREW层之上的UI系统,主要为上层应用软件提供用户界面的接口系统,本质上担当一个MWMS的角色。软件最上层的应用软件的每个视窗通过MWMS提供的统一的封装的标准窗口接口对象和与这些窗口关联在一起的各种窗口控件(Widget)接口对象,对外部用户的I/O请求进行处理,提供友好可交互的图形化的功能操作界面。在BUIW应用框架上,每个应用都会创建很多的Form对象,这些Form内部也都会用到大量图片和标题性文本资源,这些图片和文本资源中除了与应用本身特点相关联而具有不同,需要各自应用独立提供外,其它的都是具有一致和相同性。但因为目前高通的BUIW的实现里,并没有包括相同的数据资源的共享机制,即每个构建的BUIW应用,在创建的每个Form中尽管有用到相同的图片或文本资源,还是采用的是“每次创建,每次加载”的数据资源使用方案,结果是大量的系统内存因各个应用窗口的加载相同的重复数据资源而被浪费。这在嵌入式系统里对内存使用效率要求尽可能高效和低耗的基本原则是不相一致的。为此,特提出一种在BREW的BUIW应用架构上公共数据资源共享的技术方案。
二、现有技术中与本技术方案的比较
当前应用每创建一个BUIW的Form对象,都会使用相同的标题背景栏图片、关闭按钮图片,消息提示框的各种类型图标、标准的提示信息,按钮背景图片等等。这些公用图片或文本目前随每个创建的Form独立创建并占用应用的内存空间,下图所示的是现有的BUIW的公共数据资源应用结构:

现有的技术方案尽管可以让各个应用定制特殊的Form,并在这些Form上使用特定于应用的资源数据,但对于每个Form上使用到的一些公用的数据资源彼此独立,重复装载,无疑存在以下的技术缺陷:
1 、效率低下,消耗内存。随每个应用实例创建的Form,不断重复、独立的从同一个资源文件中加载公共的数据资源到各应用的独立内存空间,最终导致整个系统的内存空间大量减少,系统运行效率降低,而且内存消耗随启动应用数目、各个应用创建的Form对象数目规模成比例增长。
2 、加载资源耗时,视窗打开慢。每个应用都要对新的Form加载一次公共的数据资源,而且Form切换到其它的Form时,同时要进行公共资源的释放和新的公共数据资源的加载,视窗的打开和相互切换随BUIW的公用数据资源的增加而迟延,应用操作有明显的延滞现象。
为了实现BUIW的内部资源的多应用的多Form实例对象间数据共享,减少系统的资源消耗。大大降低因为系统的内存开销太大,导致系统的运行效率低下,甚至死机的风险。
为了实现BUIW的内部资源的文件装载与应用无关性,系统“一次装载,多应用内存共享”的资源共享方式。每个应用创建每个BUIW的Form实例时,作为可公用的这些数据资源不必重复装载,加快应用的运行速度,提升系统效率。采用新技术方案后,BUIW的数据资源应用模式如下图所示:

CDRMS模块作为BUIW的一个扩展模块,解决现有的BUIW在UI层处理公用数据资源技术实现中带来的对高通系统的资源比较大的消耗以及系统运行效率低下的缺陷,对高通的目前BUIW系统进行了优化,使之BUIW系统运行更加高效,系统资源消耗更小。考虑到模块的功能特点,分为三个部分,即数据资源的加载及资源对象的创建(CDROI),数据资源对象的共享(CDROS),共享的数据资源对象的卸载(CDROU)。

图3、模块层次结构图
数据资源的加载及资源对象的创建(CDROI)部分,实现了BUIW公用的的数据资源文件加载和共享资源对象的创建。在系统开始切换进入应用之前,由该部分完成所有共享数据资源(图片和文本)的文件装载,并以对象的方式全局共享,上述图4反映了CDRMS模块的各部分结构关系。
数据资源对象的共享(CDROS)部分,是使用最频繁的一个接口。各个应用的每个Form通过该接口部分实现了BUIW的公共图片和文本资源的共享引用,Form内部通过使用资源对象,间接引用了共享的数据资源,创建窗口的UI元素。
共享的数据资源对象的卸载(CDROU)部分,实现了在系统关闭时,对共享的数据资源的引用清除和共享对象的释放或卸载过程,确保软件系统在退出BUIW子系统时,共享的数据资源的内存可以完全归还给系统。
在模块的三个部分中,前后两个部分分别是共享的初始化和共享的关闭过程,与应用无关,中间部分和应用结合紧密,是数据资源共享实现的核心部分。

图4、 共享方式下的BUIW系统应用结构
系统初始化过程是在BREW层运行后,进入启动应用之前,会调用CDRMS的CDROI,完成全局共享资源的(以后所指的共享资源都是BUIW的可共享UI资源)文件到内存的安装和资源对象的创建。
所有的全局共享资源加载到系统的内存后,各应用实例运行创建Form对象及窗口控件,是通过BUIW的Form模块提供的接口实例,由这些Form实例去调用CDRMS的CDROS,引用到共享资源对象,完成各应用实例对BUIW视窗的共享资源数据的访问,最终由应用显示出图形化的视窗界面。
BREW系统关闭或不需要BUIW运行时,可以调用的CDROI,完成已装载的共享资源的卸载,清空系统的共享内存区及删除相关资源对象,恢复系统到共享前初始状态。以上的过程如图5所示。
CDRMS模块的数据流图按以上的功能部分可为三种:一是共享资源安装(注册)流程;二是共享资源的应用内存装载流程;三是共享资源的内存卸载和对象释放流程。
安装(注册)流程:

在安装过程中,BREW的初始化过程通过CDRMS的CDROI接口去访问共享资源文件,最终调用IFILE接口把共享资源装载到系统的共享内存区,并返回安装结果和并创建共享对象回溯到上层,系统检查返回结果,确定是否已完成共享资源的安装。
应用内存装载流程:
应用对共享资源的内存装载流程
应用共享资源的装载包括共享资源对象的快速查找和资源对象与From的数据捆绑,是否装载资源成功消息由CDROS接口逐层上报,请求资源的最上层应用检查装载结果消息,最终完成一次资源请求/应答的加载过程。
共享资源的内存卸载流程:
共享资源的内存卸载流程
通过共享资源的卸载流程,由BREW在系统关闭过程中直接以事件触发BUIW的CDMRS模块关闭应用的资源共享,CDMRS再通过CDROI接口完成实际共享资源对象的释放和共享资源内存区的清除操作。
五、本技术的应用价值
通过将应用关联的BUIW共享数据资源的文件加载过程从应用中独立出来,改成系统全局公共数据资源共享的,统一由系统预先一次装载的,应用多次内存引用的应用模式。该方案实现了对现有BUIW系统的重大改进,使BREW以及应用系统的运行更加高效和稳定
解决现有高通BUIW系统不能大量加载共享数据资源的技术缺陷
1、明显节省了系统的内存资源,增加了系统运行稳定性。
2、构建在BUIW之上的应用的资源数据加载速度明显加快,应用运行效率提升。
3、改善和加快整个BREW系统的运行速度。
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}