(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf_第1页
(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf_第2页
(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf_第3页
(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf_第4页
(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机软件与理论专业论文)基于brew平台应用开发研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 今天的移动通信用户都希望手中的移动设备能具备更多的功能,无论是高端 集成式个人移动数字助理( p d a ) ,还是以低成本和易操作为主要特色的大众化手 机,都是如此。目前人们正在积极研究利用高速a s i c 技术为移动设备,甚至为 低成本设备添加新功能的可能性。如果这些功能需要集成高端操作系统来实现, 考虑到相关的成本和体积因素,问题即变得复杂化了。大众化设备一般只提供支 持特有服务组和接口的专有解决方案,尽管多数会共享一个底层环境,但a s i c 上的专有层妨碍了常规应用程序的开发,而且使常规应用程序无法供设备厂商广 泛使用。 本文是针对我从事b r e w 应用开发一年多来遇到的难题进行研究,图形图像 和内存管理是开发中教难处理的两个问题。图形图像在b r e w 游戏中占用的资源 非常大,因此本文就职e w 中资源的压缩和解压缩做了一些研究并用于实际的游 戏开发中,双缓冲技术是图像显示非常关键的技术,本文研究并实现了在b r e w 中双缓冲技术。内存管理在手机等受限设备中非常关键,本文也对b r e w 设备内 存管理做了些研究并用于实践。 在文章的最后实现了一个b r e w 网络游戏,网络游戏是将来手机游戏的发展 的一个方向并有很大的市场。在b r e w 开发中还会遇到许多在每个游戏中重复使 用的代码,而可以解决此问题的扩展b r e w 接口,文章也实现了一个b r e w 扩展接 口。 关键字:b r e w 手机游戏图形图像 a b s t r a c t m o b i l ec o m m u n i c a t i o nu s e r so ft o d a ya l lh o p em o b i l ed e v i c e si nt h eh a n dc a r l p o s s e s sm o r ef u n c t i o n s n om a t t e rt h e a d v a n c e di n t e g r a t i n gp e r s o n a ld i g i t a la s s i s t a n t ( p d a ) o rp o p u l a rm o b i l e sw i t ht h el o w c o s ta n de a s yt ou s e h i g hs p e e da s i c t e c h n o l o g yf o rm o b i l ee q u i p m e n t so re v e nf o rl o w c o s te q u i p m e n t si sb e i n g e a r n e s t l y s t u d i e d i fh i g h e re n d i n t e g r a t i o no p e r a t i o ns y s t e m i s r e q u i r e d t or e a l i z et h e s e f u n c t i o n s ,a n dt a k i n gt h ef a c t o r so fc o s ta n dv o l u m ei n t oc o n s i d e r a t i o n ,t h ep r o b l e m g e t sm o r ec o m p l e x g e n e r a l l yc o m m o ne q u i p m e n t so n l yp r o v i d es p e c i f i cs e t t l e m e n t s u p p o r t i n gs e r v i n gt e a m sa n di n t e r f a c e s ,a l t h o u g hm o s to ft h e ms h a r eac o m m o n b o t t o me n v i r o n m e n t ,t h es p e c i f i c l a y e ro f a s i ch i n d e r st h ed e v e l o p m e n to fr o u t i n e a p p l i c a t i o n s ,f u r t h e rm o r e i tm a k e sa no b s l x u c t i o nf o rt h ee q u i p m e n t sm a n u f a c t u r e ro f p o p u l a r i z a t i o no f t h e r o u t i n ea p p l i c a t i o n s t h i sp a p e ra r ea i ma tt h ep u z z l e sw h i c ht h ea u t h o ro ft h i sp a p e rf e l la c r o s si n t h ed e v e l o p m e n to fb r e w a p p l i c a t i o ni n t h eo v e ro n ey e a rj u s tp a s t p i c t u r ea n d i m a g e a n dm e m o r ym a n a g e m e n ta r c q u i t e d i f f i c u l tt w op r o n e m s i n p r o g r a m d e v e l o p m e n t s i n c ep i c t u r ea n di m a g eo c c u p i e sq u i t el a r g es p a c e ,s o m ei n v e s t i g a t i o n s w e r ec a r r i e do u ta b o u tr e s o u r c e s c o m p r e s s i o n a n d d e c o m p r e s s i o n i nb r e w p l a y d e v e l o p m e n t ;d o u b l ec a s h e - t e c h n o l o g yi nb r e w w a ss t u d i e da n dt h er e s u l t s h a db e e ns u c c e s s f u l l yt u r n e di n t or e a l i t yi nt h i sp a p e r m e a n w h i l e ,s o m er e s e a r c h a b o u tb r e w e q u i p m e n tm e m o r ym a n a g e m e n t w a sm a d ea n du s e di np r a c t i c ea sw e l l , a sr e s u l to ft h e t e c h n o l o g y o fm e m o r ym a n a g e m e n ti s v e r yi m p o r t a n t i nt h e e q u i p m e n t sr e s t r i c t e ds u c h a sm o b i l ep h o n e i nt h el a s tp a r to ft h i sp a p e rab r e wn e t w o r kp l a yw a sa c h i e v e d n e t w o r kp l a y i so n eo ft h ed i r e c t i o n si nt h ef u t u r em o b i l ep l a y sd e v e l o p m e n ta n dh a sg r e a tm a r k e t p o t e n t i a l ap r o b l e m ,t h a ti sm a n y c o d e su s e dr e p e a t e d l yi ne a c hp l a y , i so f t e nc o m e a c r o s si nt h eb r e w d e v e l o p m e n t ,t h i sc a nb e s o l v e db yu s i n gb r e wi n t e r f a c e e x t e n d e d ab r e wi n t e r f a c ee x t e n d e dw a sa c h i e v e di nt h i sp a p e ra sw e l l k e yw o r d s :b r e w m p g a m e sg r a p h i c a n d i m a g e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名:羞丝 日期:c :珥年j 2 月2 - 1 日 硕士学位论文:基于b r e w 平台应用开发研究 1 1 b r e w 平台特性 第一章引言 对于无线网络运营商来说,通往赢利的道路总是意味着需要为其用户提供 有价值、并且在一定程度上使用户欲罢不能的服务。迄今为止,语音业务一直 是无线网络中的主打应用,但显而易见的是,非语音业务( 数据应用) 也蕴藏 着无限商机,如果运营商运作得当,并能摸准大众市场的喜好,这一市场必将 蕴藏无限潜力。这些数据应用包括实时信息服务、游戏、新闻、娱乐以及效率 提升工具等,此处不一一列举。除此以外,这些应用还包括那些能够使运营商 更加高效地与用户交流,并降低用户流失率的应用,比如用以定制用户界面的 应用以及能够更新基于手机功能的网络特性的应用。 无线行业向用户提供这些应用的最佳途径就是利用这样一种解决方案: 开放、全球统标准、独立于硬件,并且可以连续应用于任何网络、任何 移动设备。 提供端到端的解决方案,同时采用开放的技术平台以及完善的商业模型, 使所有无线应用行业参与者能够在整个价值链上实现收入共事。 能够使用户通过其无线设备发现、购买、下载并管理应用。 q u a l c o m m 的b r e w ( b i n a r y r u n t i m ee n v i r o n m e n tf o rw i r e l e s s ,即无线 二进制运行环境) 平台以及b d s ( b r e w 分发系统) 是迄今为止唯- - f 1 2 够完全 满足这些要求的商用技术和业务系统。b r e w 平台已经成为启动大众市场对无 线数据应用及服务需求的原动力。 b r e w 平台是一种开放的端到端的解决方案,也是唯一能够使应用开发商、 设备厂商以及网络运营商从数据业务中获益的途径。b r e w 是一种技术,同时 也是一种灵活的揽子”业务系统。借助b r e w ,技术门槛以及产品上市门槛 都将得以降低。设备厂商、网络运营商以及应用开发商可以高效开发、部署、 购买并销售最新的数据应用,并从中获益。 1 2 国内外的开发现状 单的说,b r e w 就是一个应用运行环境,一些专门的应用开发商可以利用此 平台,用任何一种计算机语言编写程序( 包括j a v a 、x m l 等) 。安装和支持b r e w 硕士学位论文:基于b r e w 平台应用开发研究 的手机,用户可以实现下载游戏、应用软件、g p s 定位、无线购物等几十种数 据服务。 高通专门成立了个基于b r e w 研发的互联网服务务公司。2 0 0 1 年1 月 3 1 目,b r e w 平台正式推出。 至目前全球已经有9 家运营商正式开通了b r e w 应用服务,另外还有3 家已承诺将进行b r e w 的商用。基于b r e w 平台,全球已开发出四千多万种应用 下载,用户数也超过了一千万,共有1 7 家厂商生产的8 0 余款支持b r e w 平台的 手机面市。目前应用广泛的b r e w 业务主要有移动定位业务、应用于美国的保姆 照相机和多角色游戏等等。k t f 到目前已销售出4 2 0 余万台、4 0 余款支持b r e w 应用的手机,已推出约6 0 0 项独立的b r e w 应用;n t t d o c o m o 在利用b r e w 技术 之后的8 个月内,市场渗透率达到了5 ,k t f 的市场渗透率也达到了1 0 。 在中国,联通已于2 0 0 3 年7 月正式开始了b r e w 的商用。目前,全国有1 5 0 多家b r e w 应用开发商,他们多集中在移动业务发达的地区,如北京、上海等地。 截至9 月2 0 日,全国有2 9 个开发商已可提供商用b r e w 业务,已通过商用测试 的独立应用共有4 0 0 项。目前的b r e w 下载总量也达到1 5 0 万次。但是目前b r e w 的应用( 游戏) 主要是单机版。 1 3 本文研究的目标和内容 本文目标主要是针对在b r e w 无线应用开发中的几个关键问题( 内存管 理,图形图像,包括b r e w 扩展和网络游戏方面) 做了一些研究。其论文的内 容组织如下: 第一章引言 主要介绍b r e w 的概况。 第二章体系结构 主要介绍了b r e w 编程环境、b r e w 的运行环境、b r e w 的分发 管理环境、b r e w 和硬件。 第三章b r e w 技术简介 主要介绍b r e w 平台的商业开发模式和b r e w 商业开发的 优点和怎样开发b r e w 应用。 第四章b r e w 中图形图像的处理 主要针对b r e w 应用开发中资源消耗最多的图像的处理和 硕士学位论文:基于b r e w 平台应用开发研究 应用中图像的显示。介绍了一种压缩方法和图像显示的双缓冲技 术。 第五章b r e w 内存管理概述 主要介绍b r e w 中内存的组织结构和讲述怎样合理利用b r e w 中的 内存。 第六章b r e w 网络游戏探索 主要是一个b r e w 网络游戏的开发做了一些研究。 第七章b r e w 扩展探索 主要讲叙了如何在b r e w 中扩展自己的接口,并简单的实现 一个显示文本接口的扩展。 第八章总结 主要讲叙了b r e w 的应用前景和未来的工作方向。 硕士学位论文:基于b r e w 平台应用开发研究 第二章b r e w 体系结构 2 1 b r e w 编程环境 b r e w 的a p i 和s d k 大大的简化了用e ,c + + 和其他语言开发无线应用。 b r e w 的a p i 以一组接口类的方式组织起来,每个类提供某一特定服务的一 组函数有些服务,如事件通知、菜单和对话等图形用户界面和互联网连接是现 代编程环境中标准配置。有些接口类则显示了无线环境中的一些特性,如地址 薄,振铃库和定位信息等。所以b r e wa p i 无线开发无需了解设备的内部机理 也能从事无线开发。 如果熟悉事件驱动图形界面环境的开发者将会发现b r e wa p i 好学易用。事 件处理、菜单、对话、资源、编辑、基于文件的长期储存和记录导向型的数据 库是b r e w 中标准的概念。而且,基于w i n d o w s 的模拟环境使熟悉w i n d o w s 应用 编程的程序员可以特别轻松地应用v i s u mc + + 去开发b r e w 应用。 2 2 b r e w 的运行环境 b r e w 的应用执行环境( a e e ) 是一个精巧的软件接口层。设备厂商将它集 成在各自的软件中,以支持b r e wa p i 的运行环境。在一个新终端设备中提供 a e e 要求设备厂商只要提供移植a e e 即可。图2 - 1 展示了在b r e w 是如何与一个 无线设备其他无线软件相互契合的。 用户界电子邮 照片分基于位即按即 浏览器 视频播 j a v aj a v a 面件享m m s置的说放器 a o d l e ta p p l e t 图形引擎 其它扩 虚拟扩展 网络电话特性 展 定位、s m $ 其它 brew asic 软件 bre w 独立的空中接口,可支持 gsm gprs ,umts ,cd m a o n e 与cdma20 00 1x 图2 - 1b r e w 设备体系结构 硕士学位论文:基于b r e w 平台应用开发研究 从图2 1 中可以看出b r e w 层是如何将应用同芯片层蔽开来。其中的浏览器 ( v i e w e r ) 和虚拟机引擎框代表b r e w 的扩展应用。 除了向应用程序提供b r e wa p i 服务,a e e 同时管理着应用程序的执行,及 时响应用户和一些紧急事件,如来电和短信呼入。比如说,一个正在运行的b r e w 应用当有来电呼入时,可以自动立即暂停;并在通话完毕后,再自动恢复工作。 2 3b r e f f 的分发环境 b d s 是一项具有突破性的技术,它使得终端用户可以利用手机或其他无线 设备一无线的方式下载应用 2 4b r e w 和硬件 b r e wa e e 可以移植到使用q u a l c o m mm s m 3 1 0 0 到m s m 6 0 5 0 和往上系列c d m a 芯片的无线终端。b r e w 以后还可以支持其它制式终端的a e e 。 a r m 内核:b r e w 利用a r m 内核支持一系列操作系统和电话服务。 支持b r e w 运行的终端都采用基于嵌入式r i s c 微处理器的a r m 体系结构。 p u r ev o i c e :b r e w 可以通过终端中的音响系统播放q u a l c o m mp u r e v o i c e 格式优化的高级音乐文件。 c m x :b r e w 可以利用a s i c 支持c m x ,在终端的音响系统中播放 m i d i 文件。 蓝牙:一种短程无线电技术,支持数字设备短程无线互联。未来版本的 b r e w 将支持蓝牙连接。 语音识别:未来版本的b r e w 将调用芯片组中的语音识别服务,支持相 应的应用。 硕士学位论文:基于b r e w 平台应用开发研究 第三章b r e w 技术简介 3 ,1b r e ws d k 的组件介绍 以下是b r e ws d k 中包含的基本组件: b r e w a e e b r e wa e e 是一个可充分扩展的面向对象的应用程序开发和执行环境, 该环境提供了一个使用c 或c + + 开发小程序和共享模块的平台,是一个人们熟 悉的能增强可用性的事件驱动结构( 类似于m i c r o s o f tw i n d o w s 、m a c i n t o s h 或 x 。w i n d o w s ) 。 b r e we m u l a t o r b r e we m u l a t o r ( 以后简称e m u l a t o r ) 是加载并测试小程序的前端图形用 户界面( g u i ) ,它提供了若干预置的设备模拟方案,也可以使用c o n f i g u r a t o r 创 建自己的设备模拟方案。 b r e wd e v i c ec o n f i g u r a t o r b r e wd e v i c ec o n f i g u r a t o r ( 以后简称c o n f i g u r a t o r ) 用于生成新的设备或 对现有设备的进行配置,如可以对按键功能、屏幕尺寸和分辨率以及内存大小 等进行相应配置。 b i t e wr e s o u r c ee d i t o r b r e wr e s o u r c ee d i t o r ( 咀后简称资源编辑器) 用于创建应用程序所需的 资源,如图片、字符串和对话框等等,在w i n d o w s 上和实际设备上所使用的资 源文件是相同的。 b r e wm i fe d i t o r m i f 编辑器( 以后简称m i f ) 编辑器用于生成模块信息文件( m i f ) ,其中 包含加载应用程序所需的模块和应用程序的特定信息,如支持的类、支持的小 程序、小程序权限以及小程序的详细信息( 如标题和图标) 。m i f 还包含每个 模块类唯一的c l a s s l d ,并指定导出哪些类供其它模块使用。 b r e w d l l b r e w 中包含若干动态链接库( d l l ) ,它们可以在w i n d o w s 环境下显露 内核支持的b r e w 类,因为d l l 使用的代码与为b r e w 开发的代码相同, 所以应用程序在基于w i n d o w s 的b r e we m u l a t o r 及实际设备中的行为没有什 预士学位论文:基于b r e w 平台应用开发研究 么不同。 w i n o e md l l w i n o e md l l 用于提供在w i n d o w s 平台上模拟设备行为所需的底层支 持。 b r e w 头文件 b r e w 头文件包含b r e w 接e 1 定义,用于开发b r e w 小程序,每个b r e w 接口都有一个关联的头文件,每个小程序中都必须包含该小程序所使用的接口 头文件。 3 2 组件之间的交互关系 图3 - 1 显示了b r e w 的层次结构图,从图中可以看出我们开发的应用程序 直接位于b r e w 操作系统之上,在应用开发中可以调用b r e w 提供的系统调 用。 图3 - ib r e w 的层次结构图 图3 - 2 显示了b r e ws d k 的主要组件( m i f 编辑器、资源编辑器、c + + i d e 和使用设备信息包的e m u l a t o r ) 以及它们之间的交互关系。( 注:在该图 中,t e s t a p p 代表一个使用b r e w 开发的应用程序。) 硕士学位论文:基于b r e w 平台应用开发研究 一_ _ - _ _ - _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ h _ _ _ _ _ _ _ _ _ - h _ _ _ _ - - _ _ _ - _ _ _ _ 一 来自于 q u a l c o 胡m 应用程序开发者 b r e wm i f 编辑器 输 支持的娄与小程序 小程序标题图标和缩略凰 导出的娄 依存关系 通知 b r e w 权限级别 酋选位置输出 t e s t a p pm i fb r e w 示例 b r e wr e s o u r c ee d i t o r 输入 字符串 物件 二元码 对话框和控件 输出 t e s t a p p b a rt e s t a p p b r i t e s t a p p l b a rt e s t a p p lb r i 位置 b r e w s d k t e s t a p p 参考资料 bre w m i f 编辑器 参考螯料 bre w m i f 编辑器 g s v c + + i d e ( t e s t a p pa s p ,t e s t a p pd s w ) 中的t e s t a p p 项目 输 a e e a p p g e nca e e a p p g e nh a e e m o d g e n ca e e m o d g e n h 输出位置 t e s t a p d d 1 1b r * s d r t e s t s p p 注 b r e ws d k 包括用在米 m i c r o s o f tv i s u a ls t d i o 中 的插件可以用这些插件色刨 项目文件 设备包 位置 b r e w 、s d k t e s t a p p 、 注b r e ws d k 附带设备包样品 其它设备包只要0em 厂商提 供就可以下载 图3 - zb r e w 的主要组件 3 3 使用小程序和模块 b r e w 模拟器 在b r 船环境下摸撒设备 开发者能加载和测试 t e s t a p p 包含的小程序和娄 参考资料 bre w 模拟器 b r e ws d k 的每个应用程序模块均作为独立的w i n d o w sd l l 开发。每 个模块可以包含一个或多个小程序( 如上图所示) ,且必须包含一个与之关联的 m i f 。使用b r e wm i f 编辑器创建的m i f 包含关于模块内容的信息,如支持 的类、支持的小程序、小程序权限以及小程序的详细信息( 如标题和图标) 。 m i f 还包含每个模块类唯一的c l a s s l d ,并指定导出哪些类供其它模块使用。 模块可以读取b r e w 资源文件中的数据,为应用程序提供字符串、图像 8 硕士学位论文:基于b r e w 平台应用开发研究 和对话框等资源。将特定语言和特定设备的数据保存在资源文件中,可以创建 适用于各国( 地区) 语言和各类设备的应用程序版本。要开发小程序的资源, 需要使用资源编辑器生成二进制资源文件和对应的资源头文件。 要在e m u l a t o r 和目标设备上编译和运行小程序,必须开发一个b r e w 小 程序。b r e ws d k 提供了构成应用程序的基础源文件( a e e a p p g e n c 和 a e e m o d g e n c ) 和头文件( a e e a p p g e n h 和a e e m o d g e n h ) 。s d k 还提 供了一些可实现d l l 特定功能的文件,用于生成应用程序和资源文件。在 b r e w 环境下,设备上的应用程序与e m u l a t o r 上的应用程序使用相同格式的 资源和二进制资源文件。 以下是编译应用程序d l l 需要的组件列表: b r e ws d k 附带的b r e w a e e 头文件; b r e w 助手源文件,用于创建简单的模块; 小程序源文件和头文件: 使用m i f 编辑器创建的m i f ; 使用资源编辑器创建的小程序资源文件和资源头文件( 可选) 。 3 3 1 关于m i f 系统启动时( 在设备或e m u l a t o r 上) ,b r e w 会枚举出所有的m i f 。对于 每个m i f ,b r e w 将获取该m i f 中所有应用程序和类的列表。b r e w 向应 用程序提供这些信息( 使用i s h e l l _ e n u m a p p l e t 、i s h e l l q u e r y c l a s s 等 a p i ) 。应用程序管理器使用此信息在设备屏幕上显示带有图标和标题的应用 程序列表。 3 3 2b r e wc la s s l d b r e w 中的每个类或小程序都必须拥有唯一的c l a s s l d 。b r e w 模型的 公共类和小程序均使用3 2 位i d 。 注意:b r e wc l a s s l d 仅供通过认证的开发者使用。如果您正在开发 b r e w 应用程序但尚未通过认证,可在完成认证前使用虚拟i d ;通过认证后, 只需将b r e wc l a s s l d 插入应用程序即可。 如果为小程序或类手动分配c l a s s l d ,应确保i d 的唯一性。 如果有两个 或多个类拥有相同的i d ,这些类或小程序将无法运行a 9 硕士学位论文:基于b r e w 平台应用开发研究 3 3 3 创建实例 b r e w 支持使用i s h e l lc r e a t e i n s t a n c e 函数创建小程序和模块。该函数 是b r e w 支持的最强大的a p i 之一。调用该函数时,b r e w 将从所支持类 的列表中搜索指定的3 2 位已注册c l a s s i d 。 所支持类的列表由以下两个集合组成:1 ) 内置到e m u l a t o r 的b r e w a e e 平台中的类;2 ) b r e w 启动时枚举的m i f 中支持的类。 对类调用c r e a t e l n s t a n c e 时,b r e w 将执行以下操作: l 。查找支持该类的模块。 2 将模块加载到内存中( 如果之前的c r e a t e l n s t a n c e 调用尚未加载) 。 3 使用 m o d u l ec r e a t e l n s t a n c e 0 创建类的实例。 如果成功创建类的实例。指向实例的接i :3 指针将返回到c r e a t e l n s t a n e e 0 的调用程序。请求方用完类后,必须调用类的释放函数。 在创建模块的任一对象时,必须增加其i m o d u l e 的引用计数,在释放时, 必须减少i m o d u l e 的引用计数,这一点对b r e w 设备内存管理很重要。该过 程使b r e w 可以在需要时卸载模块。 3 3 4 创建小程序 在b r e w 模型下,小程序是支持i a p p l e t 接口函数的类,使b r e w 可 以使用相同的简单接口管理所有小程序。i a p p l e t 接口仅支持标准的a d d r e f 和 r e l e a s e ,以及h a n d l e e v e n t 函数( 即事件处理器) 。 b r e w 在两种情况下创建小程序: 响应1 s h e l l s t a r t a p p l e t 函数,以允许小程序启动。这种情况下, 将创建小程序并立即向其发送e v t a p p s t a r t 事件。e v t a p p s t a r t 将 通知小程序已经激活。可以绘制到屏幕。 响应注册的通知和警报。这种情况下,将创建小程序,并立即收到通知 的特定事件。如果小程序需要绘制到屏幕或接收键盘输入,则须自己调用 i s h e l ls t a r t a p p l e t 0 自我启动。 3 。3 5 处理小程序事件 b r e w 也是基于事件驱动机制,应用程序在运行时会接收各种事件。这些 事件会发送给小程序的h a n d l e e v e n t 0 函数( 即事件处理器) 。 发送给小程序的事件包括键盘、对话框和控件更改事件。如: 1 0 硕士学位论文:基于b r e w 平台应用开发研究 e v z a p p s t a r t ,e v 正弦s t o p 、 e v ta p p s u s p e n d , e v t a p p _ r e s u m e 、e v t _ k e y 和e v t _ c o m m a n d 。如果小程序不处理事 件,其h a n d l e e v e n t 函数必须返回f a l s e ,使b r e w 可以对该事件进行默 认处理。 3 3 6 中止和恢复小程序 在b r e w 模型中,同时间内只能有一个顶层可见的小程序。但是,可 以有多个小程序处在“运行”状态。顶层可见的定义是:应用程序能控制主显示 区并接受键盘事件。处于“运行”状态的其它小程序可以继续进行其它b r e w 操作,但不能被绘制到主显示区和接收键盘事件。要使运行中的小程序变得顶 层可见,就必须在该小程序的c l a s s i d 上调用i s h e l ls t a r t a p p l e t 0 。 例如,如果小程序1 是顶层可见,当小程序2 调用i s h e l ls t a r t a p p l e t ( ) 变得项层可见时,小程序1 就会中止。小程序2 停止时,小程序l 就会恢 复。中止和恢复是b r e w 中的一种机制,用于指示小程序失去( 中止) 或收 回( 恢复) 对主显示区和键盘的控制。 b r e w 中止小程序时,将向小程序发送e v ta p ps u s p e n d 事件。如 果小程序返回t r u e ,则表明b r e w 已经处理该事件,并且尚未从内存中卸 载小程序。如果小程序不想处理中止事件,则返回f a l s e 。这时,b r e w 将 通过发送e v ta p ps t o p 事件停止小程序,并从内存中卸载小程序。在 e v ta p ps t a r t 中分配的所有内存必须在e v ta p ps t o p 中清除,在 a e e c l s c r e a t e l n s t a n c e 0 中分配的所有内存也必须在a p p f r e e d a t a o 函数内释 放。如果内存是在a e e c l s c r e a t e l n s t a n c e 0 函数中分配的( 即创建小程序实例 时) ,却在e v ta p ps t o p 中释放该内存,这样将十分危险! 在e m u l a t o r 中,可以模拟发送e v ta p ps u s p e n d 事件,方法是先在应 用程序管理器中运行小程序,然后从e m u l a t o r 菜单栏上选择一个选项( 如( 工 具 设置) 。b r e w 将立即向小程序发送e v t _ a p p _ s u s p e n d 事件。 如 果在“设置”对话框中单击取消,b r e w 将发送e v t _ a p p r e s u m e 事件。这 样就可以测试应用程序的挂起与恢复是否正常。 3 4b r e w 应用开发指导原则 表3 1 开发指导原则,它有助于避免发生常见的错误,并可将测试、调试 和重写源代码所需的时间降至最低。本指导原则可识别以下问题: 1 ,导致从w i n d o w s 移植到a r m 环境时出现问题: 硕士学位论文:基于b r e w 平台应用开发研究 2 ,导致目标设备上出现问题,但在b r e w e m u l a t o r 中不一定能够检测到 常规有效操作。 通过研究和执行这些指导原则,我们可以将从w i n d o w s 移植到a r m 的 时间总量降至最低,并使应用程序尽可能在手机上正常运行。 开发指导原则说明 执行n u l l 指在以下两种情况下需执行检查: 针检查。创建b r e w 接口实例时必须检查n u l l 指针。如果指 针有误,则该接口将无法使用。 检查b r e w 方法或己分配内存所传递和返回的所有指 针,以确保它们的有效性。无效指针应使用异常处理机制进 行处理。 避免堆栈溢出。不要将大数组放在堆栈上。不要在函数内将大数组或变量 声明为局部变量,因为b r e w 环境可用的堆栈大小十分有 限。如果需要大量内存( 例如,大于2 5 6 字节) ,则使用动 态内存分配操作符,例如m a l l o c 或i h c a p 。 如果分配处于递归例程中,则动态分配缓冲区。如果调用 堆栈中的函数较深,则监控之前大堆栈缓冲区的堆栈。 不要编写紧凑循使用紧凑循环会导致目标设备自动重置。因此,不要编写 环。 需要花费大量时间处理应用程序中单个事件的紧凑循环。这样 可以防止将其它事件传递给应用程序,从而避免设备重置。 收到事件时,应用程序将进行所需处理,然后从该事件返 回,使得其它事件可以发送到该应用程序。 力求应用程序与要确保应用程序独立于内存大小、键盘、屏幕大小和色深 设备无关。而能够在任 可目标设备上执行,请使用 i s h e l l _ g e t d e v i c e l n f o ( ) 从目标设备获取设备信息。使用该结 果指定显示、按键和多媒体等参数,而不要硬编码这些参数。 在不同设备上使用c o n v e r t b m p 例程处理图像。 使用资源。 0 使用资源存储特定语言的字符串、对话框和位图。这有助 0 于本地化应用程序,将它从一种语言的目标设备移植到另一种 i 语言的目标设备。不要在源文件中硬编码这些类型的信息。 清除内存。由于目标手机上的可用内存十分有限,因此必须释放未使 用的内存。在以下两种情况下需释放内存: 必须释放所创建对象的所有实例。 应用程序终止时,必须释放所有动态内存( 所有已分配内 存) 。 建议在不需要内存时将其释放。 硕士学位论文:基于b r e w 平台应用开发研究 不要使用全局或 b r e w 结构不支持全局或静态变量,因为动态下载的应 静态变量。 用程序无法处理这些数据类型。此外,使用全局或静态变量 可能导致连接器出现目标错误。始终将持久数据存储在小程 序结构中。 定义结构时不要 对于a r m 编译器,定义并初始化的结构被视为静态数 初始化结构。 据。请参阅上述“不要使用全局或静态变量”。 不要在条件语句使用a r m 编译器应避免此类问题。不要在条件语句中 内分配变量。编写赋值代码。 不要使用原始浮与上述“不要使用全局变量”相同;此处包括类型转换。使 点运算。用b r e w 在助手函数中提供的浮点调用。 使用b r e w 提由于目标设备上的r a m 限制,您需要将编译后的代码 供的标准库函大小控制到最小,因此应使用标准c 库函数的b r e w 子集 数。( 如果已提供) ,而不要使用标准痒函数。 避免出现类型强由于a r m 编译器处理隐式类型转换比大多数w i n d o w s 制转换错误。编译器严格,因此要明确声明类型转换。这样可以避免在从 w i n d o w ss d k 转换至a r m 环境时发生编译错误。 检查返回值。调用有返回值的b r e w a p i 方法时,应处理成功和失败 时的返回值。 处理错误代码。一些函数可能返回v o i d ,因此应使用b r e wa p ! l g e t l a s t e r r o r 0 机制来识别错误。 最小化代码大l _ 要最小化代码的大小,请在将应用程序加载至目标设备前 小。l禁用调试信息选项。 设置警告级别。在w i n d o w s 中编译应用程序时,应将警告级别设为最高 级,即4 级。此操作有助于更全面地检查代码。由于a r m 编译器在指示错误方面比w i n d o w s 编译器更严格,因此应确 保应用程序能够顺利地编译为a r m 目标。 组台多次读写。 f通过组合多次读写操作( 如果可能) ,可以全面提高读写 | l 文件的效率。将数据读入缓冲区在需要时访问。 表3 - 1b r e w 开发指导 3 5 访问外壳服务 应用程序可使用i s h e l l 接口指针访问外壳服务。指针在创建后将传递给 应用程序( 或类) 。每个接口都拥有可唯一识别自身的i d 。使用唯一的接口 c l a s s l d 调用i s h e l l _ c r e a t e l n s l a n c e 0 函数即可获取该接口的一个指针。 硕士学位论文:基于b r e w 平台应用开发研究 3 5 1l s h e ii 接口 i s h e l l 接口为小程序提供了许多服务,来访问设备操作系统的功能。可以 通过i s h e l l 主要功能执行以下操作: 获取由外壳或底层驱动程序支持的附加类 获取有关设备性能的信息; 激活和禁用当前小程序; 管理计时器; 访问系统时间和时间转换例程; 管理对话框以获取用户输入; 加载小程序使用的资源; 将事件传递到不同的接口或小程序; 显示消息框和提示; 发送警报; 注册和查询协议及内容浏览器; 注册接收其它接口的特定事件。 3 5 2i b a s e 接口 i b a s e 接口类定义了所有a e e 类对象包含的基础结构。所有a e e 接口 类均由i b a s e 类派生。 由于a e e 对象能够动态分配,因此必须使用一种独立于特定内存管理器 的机制来释放对象。它提供了对象引用计数机制,使对象可以管理自己的内存。 i b a s e 接口提供两个基本函数:a d d r e f 和r e l e a s e ,它们分别可以用来: 动态分配接口对象。 释放接口对象。 所有b r e w 类都必须实现i b a s e 接口函数。 3 5 3i m o d uje 幂口i a p pj e t 接口 i m o d u l e 和i a p p l e t 与所有其它接口的根本区别在于,它们实现的是应用 程序提供的服务,而非应用程序使用的服务。它们为外壳提供一种加载、管理 事件和向应用程序传递事件的机制。b r e ws d k 为我们提供了i m o d u l e 和 i a p p l e t 接口的默认实现。 l l d o d u l e 接口 硕士学位论文:基于b r e w 平台应用开发研究 b r e w 模型的基础是i s h e l l 连接或加载模块( i m o d u l e ) 所使用的机制。 这些模块导出一个定义的入口点,并调用该入口点获取i m o d u l e 接口。 i m o d u l e 仅提供两个函数。第一个也是最关键的函数允许b r e w 请求模块中 指定的类实例。第二个函数允许b r e w 请求模块释放任何多余的系统资源。 b r e w 支持静态和动态模块。静态模块由制造商植入设备,因此只有设备 厂商才能开发静态模块。动态模块可通过下载得到,并在设备上运行。s d k 仅 支持动态模块。 静态和动态模块都导出个入口点,该入口点正是在模块中调用或运行的 第一个函数。就静态连接模块而言,该入口点可用于获取支持的类和小程序的 列表。另外,它还可以返回指向模块

温馨提示

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

评论

0/150

提交评论