基于BREW平台的多态机制实现

上传人:卢** 文档编号:122554864 上传时间:2022-07-20 格式:DOC 页数:4 大小:20KB
收藏 版权申诉 举报 下载
基于BREW平台的多态机制实现_第1页
第1页 / 共4页
基于BREW平台的多态机制实现_第2页
第2页 / 共4页
基于BREW平台的多态机制实现_第3页
第3页 / 共4页
资源描述:

《基于BREW平台的多态机制实现》由会员分享,可在线阅读,更多相关《基于BREW平台的多态机制实现(4页珍藏版)》请在装配图网上搜索。

1、基于BREW平台的多态机制实现 摘要:brew技术是在挪动数据增值应用开发领域中出现的一种新技术,开发主要是应用的c语言,但开发中的大量问题都与c+中实现的多态效果非常相似,假如可以利用c语言这种非面向对象的语言写出面向对象的程序,将有利于进步程序的重用性、模块化功能以及强健性。本论文主要围绕着brew平台应用开发中一个常见应用:页面迁移技术为例,给出了多态机制在brew平台下的解决方案,该方案均是在brew实际开发中总结出来,具有很大的可重用性。 关键词:brew;多态机制;页面迁移 1引言 如今,已不仅是语音通信的工具,而且逐步成为数据业务开发与应用的平台,随着科学技术的不断更新和开展,如

2、今已不仅仅是满足打 的功能,而是更多地成为人们在工作、学习和生活中的助手。在这种情况下cdma产生了一种新的应用平台,也就是由美国高通公司研发出的brew平台。brew技术的出现使犹如普通电脑一样可以运行更多的第三方软件,为用户提供更多的效劳。 brew的技术优势在于基于c语言进展的,平台开发对于许多程序员来讲均非常熟悉,挪动设备制造商无需再开发专有的软件平台,可降低挪动设备技术门槛及产品上市门槛,满足终端用户对最新数据应用的需求。本文主要围绕着在brew平台下,如何利用c语言这种非面向对象的语言写出面向对象的程序展开阐述,并以应用开发中一个常见的应用页面迁移技术为例,对其解决方案进展了详细的

3、介绍和比照,该方案均是在brew实际开发中总结出来,具有很大的可重用性。loCALHOST 2 brew平台简介及应用软件开展现状 2.1 brew平台简介 brew的全称是binary runtime environment for wireless,即无线二进制运行环境。从根本的层面而言,brew平台就是手持设备上嵌入式芯片操作系统的接口或抽象层。即是pc环境下microsoft windows的win32 api。brew平台是一组用于本地执行、编译并链接的二进制库,优化后能使应用程序利用无线效劳和资源。它控制流出或流入应用程序的事件流,能根据相应的事件启动、停顿、中止或恢复应用程序,其

4、执行环境在运行时可以发现应用程序和任何相关的扩展。 据联通博路通信技术2022年3月9日?brew业务整体介绍?,到2022年底,国内支持brew的机型已经超过251种,200多家中国brew开发商提供了2479多种基于brew的应用。 2.2 应用软件开展现状 据市场研究公司strategy analytics预测,尽管由于经济危机的影响,2022年全球销量虽会有所下降,但仍可到达10.8亿部,销售额会稳定在1900亿欧元,甚至会有微弱增长。可以预见,随着将来全球经济的复苏,全球市场的前景仍很乐观。而且随着嵌入式技术的快速开展及国内3g网络的建立,因此将来基于brew的应用软件需求宏大。 2

5、 brew平台中的多态 随着业务的不断开展,的软件系统也成为一个非常庞大、复杂的软件系统,这样一个复杂的体系构造,应该保证可以及时响应用户和一些紧急事件。此时,要想使brew平台开发的游戏具有更大的优势,选择一种好的实现机制至关重要。 brew平台支持c和c+开发语言,但是一般的brew应用程序都是用c写的,而对于c+的使用,brew平台那么需要做更多的事情,比方定义符重载等。而c语言是不支持面向对象的,只有c+支持面向对象的程序设计,因此brew中必须使用c语言模拟实现c+语言面向对象机制。而面向对象技术中的关键技术多态是基于以上的内存模型和函数指针实现的,一般来说,假如使用类c语言描绘多态

6、,它相当于增加了一个间接层,在这个间接层拦截对于方法的调用,然后根据详细的指针指向实际对象调用相应的方法实现。 以下就以brew中的页面迁移的方案为例进展详细的阐述。 3 brew平台中的页面迁移 对于一个的应用软件,要随时注意的按键变化,在每一个状态下的每一次乃至每一个按键的变化,都将会出现不同的界面和效果。这就是所说的brew平台下的页面迁移,在该过程中画面不停变换,而的键盘只有一个,这时,应用程序如何判断该详细执行何种操作,就成为brew平台上应用程序开发中一个重要的问题。 使用的经历告诉我们,页面需要频繁的进展迁移时,实现页面迁移的方案和其效率的上下对于内存很小的来说都是至关重要的。

7、3.1 根本brew页面迁移方案 对于一个brew开发的页面迁移的程序,根本的解决反感就是可以自行设置一组宏分别代表页面的不同状态,每个状态再对应一个brew的事件处理过程,在每个事件处理中,通过对按键的判断来调用不同的应用函数,如页面的新建、翻开、重画、删除、和键盘事件的相应函数,调用后再进展页面的迁移。brew可以利用这种调用的机制,实现通过按键完成函数和函数之间不断的调用过程。 该类方案的详细处理过程在处理按键的caseevt_key中:根据不同的页面的宏标识id执行不同页面的handleevent事件函数。 例如: /根据不同的窗口,调用不同文件中的事件处理程序 switch(pme-

8、activeview) /判断当前的活动页面 case idw_game:/假如是游戏页面,那么执行游戏页面对应的事件处理程序 return gamewnd_handleevent(pme-game, ecode, wparam, dwparam); case idw_mainmenu: /假如是 【1】【2】主页面,那么执行主页面对应的事件处理程序 return mainmenuwnd_handleevent(pme-mainmenu, ecode, wparam, dwparam); default:break ; 该种方案的特点是较为利于理解,但是使用时容易出错,不宜调试。 3.2 类多

9、态的brew页面迁移方案 经过上述分析可以看出,中的页面迁移问题与c+中实现的多态效果非常相似,也就是完成一个窗体接口类的实现, 该接口类能完成绘制屏幕和接收客户键盘输入的功能,对于客户的一样输入, 不同的窗体构造应该能表达出不同的行为。假如可以利用c语言这种非面向对象的语言写出面向对象的程序,将有利于进步程序的重用性、模块化功能以及强健性。 brew平台中的宏qinterface,get_pvtbl,declare_vtbl可以用来完成这种效果。其本质就是在基类的层次上定义一个“空函数集,通过该空函数集实现一个抽象的,虚拟的,通用的接口层,可以在运行时根据对象的实际类型动态地调用派生类的那些

10、“详细函数,简言之,就是同一个接口函数,根据详细的对象,调用详细的函数。 使用时首先通过qinterface定义了一个包含vtbl(虚函数表)的接口,在运行时,根据详细传入的对象类型调用了详细派生接口的“详细函数。如:#define iwindow_enable(p)get_pvtbl(p, iwindow)-enable(p, true)这里p是iwindow指针类型。用户调用iwindow_enable(p)时,虽然此时传入的是iwindow类型指针,但是其本质是派生的详细接口类型,所以最终调用到的就是属于它(派生详细接口)的详细接口函数了。 以下代码用于完成一个满足上述要求的页面迁移过程

11、。 typedef struct _iwindowiwindow; qinterface(iwindow) void (*enable)(iwindow * po, boolean benable); void (*redraw)(iwindow * po); boolean(*handleevent)(iwindow * po, aeeevent ecode, uint16 wparam, uint32 dwparam); ; #define iwindow_enable(p) get_pvtbl(p, iwindow)-enable(p, true) #define iwindow_red

12、raw(p) get_pvtbl(p, iwindow)-redraw(p) #define iwindow_handleevent(p, e, w, dw) get_pvtbl(p, iwindow)-handleevent(p, e, w, dw) #define inherit_cwindow(iname) declare_vtbl(iname) ishell * m_pishell; idisplay * m_pidisplay; struct cwindow inherit_cwindow(iwindow); ; 详细实现的功能如图1所示: 上述代码实现了一个构造体cwindow,其

13、中包含三个成员,一个是指向函数表构造体类型的指针vtiwindow,另两个是普通成员指针。要通过指针vtiwindow访问函数的话,那么只需要创立对应接口的函数表的实例,把接口实例的对应的函数表保存起来,然后用修改正的函数表构造体交换到接口之中,当调用对应的接口函数的时候, 就具有了特殊定义的行为。 通过上述工作,已经得到了一个窗体的基接口类,在其根底上可以派生自己的接口类来构造不同的窗体。并在派生接口类窗体中增加自己的数据成员,也可以增加接口行为,这样,就可以构造出负责各种功能的窗体来满足挪动应用的需要。如图2所示。 4 完毕语 文中针对开发的详细问题提出相应的解决方案,该方案均是在brew实际开发中总结出来的。这些方法和框架代码具有很大的可重用性,很好的解决了在brew开发中频繁出现的页面迁移问题,有一定现实意义。 参考文献 【1】唐际宇,杨永田,王骥.brew平台内部接口机制的讨论.航空电子技术, 2022(3). 【1】【2】

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!