《基于BREW平台的应用程序开发.pdf》由会员分享,可在线阅读,更多相关《基于BREW平台的应用程序开发.pdf(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京邮电大学硕士学位论文基于BREW平台的应用程序开发姓名:雷长虹申请学位级别:硕士专业:电路与系统指导教师:周利清20050522毕业设计(论文):基于B R E W 平台的应用程序开发摘要随着通信和计算机技术的日益进步,游戏不再仅仅可以在台式计算机上玩。手机硬件技术的进步,使手机也逐渐成为一个好的游戏平台。手机虽然在计算能力、存储空间、视觉效果、声音效果上都不如台式计算机,但是,手机游戏面对的是庞大的手机使用人群从而拥有美好的未来。当人们在等待公车、购物排队以及一些比较短的间歇时间里,拿出手机享受一下手机游戏带来的快乐,这是现代通信技术与计算机技术给予人们的又一项休闲娱乐。B r e w
2、是Q U A L C O M MI n c o r p o r a t e d 公司开发的新一代手机平台,利用它可以使手机实现各种强大的功能比如,数据库的开发,游戏的设计,文件的操作,网络的传输。由于B R E W 平台基于普及程度很高的C C+语言,所以它是一种开放的端到端的解决方案。本论文将通过“台球游戏”来介绍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 手机游戏的流程。S p r i t e 是一个非常完
3、善的游戏编写接口,而I F i l e 和I F i l e M g r 接口可以实现游戏保存的功能,另外,利用I S o c k e t 接口可以完成分数排列的查询。手机游戏要受到很多条件的制约,而且手机提供给你的空间和处理能力都非常有限,所以必将导致手机游戏的设计过程比较复杂并且非常具有挑战性,同时需要注意很多问题。在一个游戏的编写的过程当中,算法是游戏的灵魂。论文中对几种典型的游戏现象进行了分析,如发射子弹和弓箭,碰撞,躲开障碍物,障碍物循环出现等;然后简要介绍了游戏当中几种常见的人工智能(A I)现象,例如跟踪导弹、路径寻找、主动攻击等等;最后,论文着重完成了台球游戏在手机上的算法实现
4、。关键词:无线二进制运行环境,套接字,I F i l e,I F i l e M g r,S p r i t e,人工智能http:/ 1 论文背景介绍第一章绪论B R E W,无线二进制运行环境,是高通公司2 0 0 1 年1 月3 1 日推出的一种适应用环境,为无线设备,无论是低价位的手机还是高端多功能的手机,提供了一个开放式标准平台。这个平台旨在让应用开发商、手机制造商和无线服务提供商进行无线应用开发、设备配置、应用分发、提供计费和支付管理的开放式端到端解决方案。因为B R E W 是一种针对无线应用的开发工具,一些专家认为,对于移动网络特别是C D I A 网在全球更大范围的部署和成熟
5、,B R E W 将可能成为整个行业的推动力量。通过它,应甩开发者可以更快地编写应用程序,进入大众市场,并确保能得到报酬;O E M 厂商仅需极少量内部开发和整合工作,就可更快地推出新设备;运营商通过提供广泛且真正实用的应用、内容和服务,可创造新的收入来源并获得竞争优势;而消费者可以获得全新的无线应用,增加电信消费。无疑,一个完整的产业价值链因为B R E W 而加速形成。对于制造商而言,B R E W 平台是专门为简化流程、缩短开发时间和创造未来赢利机遇而设计的。由于B R E W 采用标准接口,为B R E W 编写应用的速度大大加快;B R E W还支持现有的第三方应用(如微型浏览器),
6、从而使应用能够立即用于多种产品。B R E W平台甚至能够使手机厂商将应用开发工作部分全部外包,从而大大加快产品开发和推向市场的速度。B R E W 平台为手机厂商提供了许多优势,包括:降低开发成本,加快推向市场的时间;获得广泛的应用开发支持,包括第三方专有选件,从而实现产品差异化;凭借固有的B R E W 能力支持第三方应用;在手机出厂之后仍能利用可下载的库和模块对其功能进行扩展和修改;由于缩短了开发周期并减少了外部开发工作,可以更轻松地满足不同运营商的具体应用和定制要求;提供了常见的、符合业界标准的软件开发环境;简单实现B R E W 平台的集成。B R E W 具有以下几个明显的优势:1
7、)由于B R E W 平台基于普及程度很高的C C+语言,所以应用开发商的学习曲线归属项目项目级别http:/ 是最平滑的另外,由于B R E WS D K(软件开发包)是免费下载的,更有利于其在更大范围内的普及2)B R E W 平台在电话中仅需极少的内存,这使其能够更加轻松的移植到在市场上热卖的内存有限的低成本电话中网络运营商可以任意选择可用于B R E W 手机一系列应用而可选式T R U EB R E W兼容性测试流程可以保证这些应用的网络安全性以及可靠性。除了B R E W,现在的移动平台主要还有J 2 M E、S y m h i a n、S m a r t P h o n e 2
8、0 0 2、P o c k e t P C。P o c k e t P C 想成为主流不大可能,所以临推出S m a r t P h o n e,但S m a r t P h o n e现在情况不明。S y m b i a n 已被广大手机厂商所采用,并占领很大的市场份额,而且越来越大,所以S y m b i a n 的市场近期内矾s 轻易是抢不去的。比较了上面几个平台后再来看J 2 M E 由于J Z M E 和B R E W 功能的相似性,许多业界人士一直将这两个平台视为相互对峙的竞争对手。事实上,J 2 M E 是B R E w 的有益补充,而不是它的竞争对手。具体说来,B R E W
9、是一个由客户机、服务器和商业模式解决方案组成的完整开放式超集,可满足所有无线应用相关厂商和消费者的需求。在这一框架内,J 2 M E 应用仅为一个子集,在B R E W 环境中,J Z M E 能够更好地发挥作用。Q U A L C O N 和I B M 正在将I B M 基于J 2 M E 的虚拟机环境(W 憎t E)移植到B R E W,使J a v a 和B R E W 两种平台相得益彰。因为J 2 肥能在各平台之上运行。作为开发者来说S y m b i a n、B R E W、S m a r t P h o n e都是使用c+来开发,前期的技术投入是非常高,尤其是S y m b i a
10、 n 及B R E W,而J 2 眦对于以上几个平台来说,可谓是“快速应用开发平台(工具)”,这样开发商可以极大地减低开发成本、风险、开发周期。这也是正是J 2 9 E 被广大开发商、爱好者采用的主要原因之一,快速应用开发平台无论何时都有它的存在价值。从现在来看移动应用还是比较简单的,随着行业的发展,开发商必然会开发更强劲的应用出来,不论游戏还是商业应用。J 2 粑会和其它平台达成一个互补,当然M I D P 所支持的类库也会越来越丰富。1 2 论文结构a)第一章绪论,介绍了笔者所在科研项目的背景以及在项目中的学习工作情况。b)第二章B R E WS D K 概述概述B R E WS D K
11、的概念组件及其组成。C)第三章B R E W 基础提供B R E W 的概览并说明B R E W 应用程序执行环境(A E E)如归属项目:项目级别:http:/ 何使您能够有效地开发可植入任何实际手持设备的应用程序,另外还将简单介绍B R E WA P I。d)第四章程序设计概念,解释B R E W S D K,包括模块小程序和接口的基本和高级概念。e)第五章游戏的设计与实现,完成游戏的策划,包括各个人物的设计,以及实现的方法,详细介绍了台球游戏的算法,简要介绍人工智能在游戏中的应用。f)第六章对B R E W 平台下的手机游戏的开发的总结。1 3 本人工作情况本人在硕士研究生学习阶段,独立
12、开发过多个手机游戏,涉及的内容从一个游戏的设计和创意,到个游戏代码的编写以及游戏的测试,具体任务如下:利用B r e w 平台上S p r i t e 接口完成游戏的编写熟练掌握B r e w 平台上文件操作方面的接口函数 怎样实现对文件的操作来实现游戏保存功能台球游戏在手机平台上的算法实现实现游戏客户端的玩家分数与s e r v e r 的通信游戏中几种常见现象的分析游戏中人工智能的分析归属项目:项目级别:http:/ R E W 平台的应用程序开发 第二章B R E W 概述B R E WS D K 由整套工具和服务组成,使应用程序开发者能够为各种手持设备快速有效经济地开发和配置新的应用程
13、序。2 1B R E W 各个环境介绍2 1 _ lB R 肼编程环境B R E W 的A P I(应用程序接口)和S D K(软件开发工具)极大地简化了用C、C+和其它语言开发无线应用。B R E W 的A P I 以一组接口类的方式组织起来,每个类定义提供某一特定服务的一组函数,使开发商无需了解设备的内部机理也能从事无线应用的开发。B R E WE m u l a t o r 使开发人员可以测试无线应用在一系列仿真设备W i n d o w s 环境下运行的状况,这样就免去了在真实设备中的测试。熟悉驱动图形界面环境的开发商将会发现B R E WA P I 好学易用。事件处理、菜单、对话、资
14、源、编辑、基于文件的长期储存和记录导向型的数据库是B R E W 中标准的概念。而且,基于W i n d o w s 的模拟环境使那些对W i n d o w s 应用程序编写熟练的程序员可以特别轻松地用V i s u a l C+去开发B R E w 应用。由于B R E WA P I 可适用于多种设备,利用B R E WA P I 编写的程序可以轻松地从一个无线设备移植到其他无线设备中。所以开发商编程一次,就可运行在多种设各中。虽然不同设备由于显示尺寸不同可能要对程序进行微调,但大多种这种细微的调整可以在B R E WE m u l a t o r 中轻易地测试出来。B R E W A P
15、 I 可以支持扩展名,设备厂商、运营商和开发商可以编写插件类来拓展B R E W 的功能。2 1 2B R E W 运行环境B R E W 的应用执行环境(A E E)是一个精巧的软件接口层。设备厂商将它集成在各自的软件中,以支持B R E WA P I S h 运行环境。在一个新终端设备中提供A E E 要求设备厂商只要移植A E E f l 口W,此外,B R E WE m u l a t o r 6 P 提供了一个A E E 的W i n d o w s 端口,所以B R E W归属项目:项目毅别:http:/ E m u l a t o r 可以运行针对W i n d o w s 的小
16、程序。由于A E E 占用的随机存储器和闪存极小,B R E W 不但可以使高档机型锦上添花,而且在低端主流机型中也能大显身手。除了向应用提供B R E WA P I 服务,A E E 同时管理着应用程序的执行,及时响应用户和一些紧急事件,如来电和短信呼入。比如说,一个正在运行的B R E W 应用当有来电呼入时,可以自动立即暂停,并在通话完毕之后,再自动恢复工作。2 1 3B R E W 的分发环境B D S 是一项具有突破性的技术,它使得终端用户可以利用手机或其他无线设备以无线的方式下载应用。无线应用开发商可以根据用户购买应用的数量得到相应的回报。为了确保B R E W 应用安全下载,一个
17、名为T r u eB R E W 的独立测试流程可以确保开发商提供的应用模式安全稳定地运行在终端上,而且同B R E W 习z 台兼容。支持B R E W 的终端只能运行经过开发商、运营商和高通数字签名的应用。有些运营商只提供经过T r u eB R E W 钡I J 试的应用。2 1 4B R E W 和硬件B R E WA E E 可以移植到使用Q U A L C O 州M S M 3 1 0 0 和C D M A 系列芯片的无线终端。B R E W还将支持其它制式终端的A E E 移植。下面介绍一下目前Q U A L C O M MC D M A 芯片支持的一些高级功能,以及B R E
18、W 是如何利用这些功能的:A R M 庆J 核:B R E W$N J 用A R M 庄J 核支持一系列操作系统和电话服务。支持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 eV 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 将支持蓝牙连接。语音识别;未
19、来版本的B R E w 将调用芯片组中的语音识别服务,支持相应的应用。归属项目项目级别http:/ 2 2B R E W S D K 的组件2 2 1 组件组成1)B R E WA E EB R E WA B 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 的平台。2)E m u l a t o rB R E WE m u l a t o r T M
20、以后简称E m u l a t o r 是加载并测试小程序的前端图形用户界面(G U I)它提供了若干预置的设备模拟方案。3)D e v i c eC o n f i g u r a t o rB R E WD e v i c eC o n f i g u r a t o r T M 用于生成新的设备或编辑现有的配置,在配置如键盘按键及其功能屏幕尺寸及分辨率和内存大小时将会很有用。4)资源编辑器用于创建应用程序的资源。5)M I F 编辑器M I F 编辑器用于生成模块信息文件(M I F),其中包含加载小程序所需的模块和小程序的特定信息。6)B R E WD L LB R E W 中包含若干
21、动态链接库(D L L)它们可以在M i c r o s o f tW 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 及实际设备中的行为没有什么不同。7)B R E W 头文件B R E W 头文件包含B R E W 接口定义并用于开发小程序,每个B R E W 接口都有一个关联的头文件,每个小程序中都必须包含该小程序所使用的接口头文件。归属项目:项目级别:http:/ 2 2 2 组件如何交互I。白弋1n-。2 瞳“。lB
22、R 曰D e v I C 帆u 孺的r丛篡型名彝擅下按钮产生的鼍鲁缱啊鲁出址鲁掩盘件:轧m 脚D 鲋I。目_ 讳t 连龃:B R E WD e v h e嚣;嚣鼍野蛊7 8 呲鲁羊盅甩置晦置啦I 毒醒料:J 县R E W崔奢辑叠毒庸l、一、归属硕同:项目级别:蕊一一http:/ R E W 平台的应用程序开发 2 3B R E WS D K 目录结构2 3 1B R E WS D K 所包含的目录B i n 包含B R E WS D K 二进制码和数据文件 目录包含E m u l a t o r音质数据库和蜂鸣类型B i t m a p s 包含示例应用程序所使用的图像这些图像保存在M o n
23、 o4 G r e y 和2 5 6 c o l o r 目录下D e v i c e s 包含可加载到E m u l a t o r 的预定义的示例设备文件E x a m p l e s 包含示例应用程序应用程序资源B A R 文件,共享文件和M I F E m u l a t o r 使用该目录中的组件加载并执行应用程序I n c 包含可以在B R E W 模块中使用的B R E WA E E 头文件S r c 包含与B R E W 应用程序相关的基础源文件每个应用程序的方案或结构中必须包含A E E A p p G e n e 和A E E M o d G e n O 除非已经创建了这些
24、文件的自定义版本2 3 2 目录介绍I 设备文件B R E WS D K 提供了一组预定义的示例设备文件,示例设备文件可以加载到E m u l a t o r 中来显示一种不同的设备。2 B i t m a p s 目录 目录包含示例应用程序所使用的图像它们保存在M o n o4 G r e y,2 5 6 c o l o r 目录下在该目录下添加文件应用程序便可使用新的图像。3 小程序目录默认的小程序目录是,您可以在B r e wE m u l a t o r 设置对话框工具,设置中选择其它的目录来更改默认设置。小程序目录是保存应用程序目录的,根目录中每个应用程序都有一个同名的目录,因为其M
25、 I F 和可执行应用程序必须驻留在该应用程序目录下,例如M I D I 1 d l F。文件必须在小程序目录 下有一个对应的子目录M I D I,在该子目录下是对应于该模块的D L LM I D I,子目录包含M I D I D L L,文件该子目录可能还包含与该模块中所有应用程序相关的资源文件和其它数据文件4 1 d l F 目录归属项目:项目级别:http:/ 所有M I F 均驻留在 目录下。在目标设备中M I F 目录与小程序目录是相同的M I F 目录可与小程序目录不同,仅在W i n d o w sS D K 上可行在设备上M I F 必须总是位于与小程序目录相同的目录下。5 资
26、源目录资源目录是小程序目录下的子目录,包含特定语言类型和各种颜色深度的系统资源默认情况,B R E WS D K 使用英语,默认的资源目录是,在 目录下系统资源和应用程序资源以l 位2 位和8 位颜色深度保存在M o n o4 G r e y$1 2 5 6 c o l o r 目录下。归属项目:项目级别:http:/ R E W 平台的应用程序开发 第三章B R E W 基础今天的移动通信用户都希望手中的移动设备能具备更多的功能,无论是高端集成式个人移动数字助理(P D A)还是以低成本和易操作为主要特色的大众化手机都是如此,目前人们正在积极研究利用高速A S I C 技术为移动设备甚至为低
27、成本设备添加新功能的可能性。如果这些功能需要集成高端操作系统来实现考虑到相关的成本和体积因素问题即变得复杂化,大众化设备一般只提供支持特有服务组和接口的专有解决方案,尽管多数会共享个底层环境,但A S I C 上的专有层妨碍了常规应用程序的开发,无法提供设备厂商的产品使用。3 1B R E W 解决方案Q U A L C 0 咖依靠在A S I C 移动设备和桌面应用领域的成熟经验,开发了B R E W 这套解决方案。B R E W 的任务是提供一个有效低成本可扩展和人们熟悉的A E E,着重开发可无缝植入任何实际手持设备的应用程序。B R E W 可以在现有的设各类型上运行这一点,与构建在对
28、内存处理器速度和相关硬件有较高要求的操作系统上的高端产品。使用不同B R E W 应用程序,开发者甚至可以扩展低成本设备的功能。3 2B R E W 的优点B R E WA E E 具有以下优点:B R E W 可以有效地利用R A M 和持久存储器,其使用的对象仅在必要时加卸载B R E W 应用程序环境支持人们熟悉的类似于M i c r o s o f tW i n d o w sM a c i n t o s h 或U N I XXW i n d o w s 的事件驱动结构B R E W 小程序可供各国地区本地化所有文本以U n i c o d e 管理并以所选语言支持的最有效的方式保存
29、B R E W,还支持特定O E M 的本地文本格式开发者不必关心低级平台数据结构和设备驱动程序,因为应用程序和设备平台可以完全通过适当定义的类进行交互归属项目:项目级别:http:/ R E W 平台的应用程序开发 模块可以独立和同时开发,能够最大限度地缩短开发时间,减少复杂的集成问题B R E W 支持接收定向到应用程序的短消息服务,例如,股票行情,简短电子邮件或交通更新信息B R E W 提供了内核类可与设备平台进行对接,小程序使用这些类来管理和控制的设备资源对话日期控件菜单控件文本控件时间控件静态文本控件3 3B R E W 环境B R E W 提供的功能丰富,轻松运行的环境,使应用程
30、序开发者能够利用Q U A L c o 移动基站调制解调器(M S M 呻A S I C 所提供的现有和新增的功能。B R E W 可充分扩展的面向对象的应用程序执行环境,允许使用C 或c+开发小程序和共享模块。此外B R E W的设计还关注效率和节约移动设备的R A M,支持应用程序小程序和共享模块小程序和模块开发成独立的D L L,并在运行时加载到E m u l a t o r。共享模块可提供各种功能,如可供若干小程序使用的增强型游戏A P I。B R E W 提供了一套成熟的对象技术,开发者可以得到以下好处:应用程序服务支持简单的基于事件的A E E内核服务支持对文件网络服务内存和屏幕的
31、访问增强型服务,例如增强图形性能,声音播放器,G P S 和语音服务集成服务使应用程序开发者可以利用诸如浏览器所支持的服务下图说明了在支持小程序和模块方面,B R E W 一如何提供一个薄层以支持对O E M 和A S I C软件的访问归属项目项目级别http:/ 3 4B R E W 模块接口结构B R E WA E E 提供了多种类型服务,包括若干A E E 接口,如I S h e l lI D i s p l a y 和I M e n u C t l,每个接口都封装了一组资源和允许管理这些资源的方法。B R E W 模块可以包含一个或多个小程序或类模块,在运行时显示这些类并根据需要加载或
32、卸载使用接口。每种接口都由个3 2 位的接口I D 标识,公共接口必须通过Q U A L C 0 蛳B R E W 接口注册,而保留接口注册不限制接口I D 的分配,它是为B R E w 开发者提供的服务可避免接口I D 发生冲突。在使用接口之前必须通过调用I S h e l l 接口的C r e a t e l n s t a n c e 0 方法创建一个归属项目:项目级别:http:/ 实例,接口唯一的全局性标识符将传递给I S H E L L _ C r e a t e I n s t a n c e 函数以获取一个该接口的指针。在小程序中,保存该接口实例以备将来使用C r e a t
33、e l n s t a n c e 会返回接口和正的引用计数,如果小程序不再需要接口,请确保释放该接口。对许多接口而言,I S h e l l 接口的I S H E L LC r e a t e l n s t a n c e()方法是创建接口实例的方式,但是某些接口则使用其它方法,例如要创建使用位图文件的I I m a g e 的实例,需调用I S H E L L L o a d l m a g e(),然后返回l l m a g e 接口的指针。归属项目:项目级别:http:/ 第四章B R E W 程序设计概念B R E W 开发增值业务是以模块为单位,每模块可能含一个或多个小程序(A
34、p p l e t)。模块的调用(以W i n d o w s 平台为例,以下同)是从m o d u l e _ m a i n 入口开始,提供以W i n d o w s 动态库类型的小程序为运行单位。业务模块的开发可以独立和同时开发,从而最大限度地缩短开发时间,回避复杂的集成问题。B R E W 中的每个类或小程序必须拥有一个唯一的C l a s s I D,在B R E WS D K 中,提供了C l a s s l D 编程器生成后缀为M I F 的文件,它包含支持的类、支持的小程序以及小程序标题。启动时,B R E W 会在设各屏幕上列举M I F 文件,并保存从M I F 列举收集
35、来的信息,以便在请求类时使用。4 i 小程序和模块概述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 资源文件中的数据,为应用程序提供字符串图像和对话等资源。保存在资源文件中的特定语言和特定设备的数据,可以用来创建各国地区和各类设备的应用
36、程序版本,要开发小程序的资源需要使用资源编辑器生成二进制资源文件和对应的资源头文件。要在E m u l a t o r 和目标设备上编译和运行小程序,必须开发一个B R E W 小程序。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 WA E E 头文件B R E W 助手源文件用于创建简单的模块小程序源文件
37、和头文件使用M I F 编辑器创建的M I F归属项目:项目级别:http:/ R E W 平台的应用程序开发 使用资源编辑器刨建的小程序资源和资源头文件4 1 1 关于m F在将小程序加载9 0 E m u l a t o r 之前,必须在M I F 编辑器中创建模块的M I F。每个M I F 中都包含特定B R E W 模块支持的类和小程序的信息,因此作为小程序捆绑的一部分必须要加载M I F。在设备或E m u l a t o r 上,启动系统以后应用程序管理器将处理每个M I F,以获取M I F 中提供的所有应用程序的列表。利用M I F 提供的信息,应用程序管理器将在设备屏幕上显
38、示应用程序的列表,包括图标和标题,从M I F 枚举收集的信息由B R E W 保存,以便在请求类时使用,这些信息支持各种I S h e l l 函数。4 1 2B R E WC l a s s I DB 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 I D 插入应用程序即可。如果为小程序或类手动分配C l
39、 a s s l D,应确保I D的唯一性,如果有两个或多个类拥有相同的I D 这些类或小程序将无法运行。1-接口C l a s s l D:每个B R E W 公共接口都拥有一个可标识自身的唯-I D,这些I D 全部被保留,不供其它接口或小程序使用,如果小程序在调用外壳的C r e a t e I n s t a n c e 函数时请求一个接口指针,它会使用该接口I D 来识别请求的接口。A E E C L S I D _ A d d r B o o k 地址簿接口标识符A E E C L S I D _ A R C 4 密码接口标识符A E E C L S I D B C IB C I
40、接口标识符A E E C L S I D _ C L O C K C T L 时间控件接口标识符A E E C L S I D C O U N T D O W N C T L 倒数计时控件接口标识符A E E C L S I D D A T E C T L 日期控件接口标识符A E E C L S I D _ D A T E P I C K C T L 日期选择控件接口标识符A E E C L S I D _ D B M G R 数据库管理器接口标识符归属项目:项目级别:http:/ A E E C L S I D D I A L O G 对话框控件接口标识符A E E C L S I DD
41、I S P L A Y 显示接口标识符A E E C L S I D F I L E M G R 文件管理器接口标识符A E E C L S I DG R A P H I C S 图形接口标识符A E E C L S I D _ H E A P 堆接口标识符A E E C L S I DH T M LH T M L 浏览器接口标识符A E E C L S I D I C O N V I E W C T L 图标视图菜单控件接口标识符A E E C L S I DL I C E N S E 许可证标识符A E E C L S I D L I S T C T L 列表控件接口标识符A E E C
42、L S I BM D 5 散列接口标识符A E E C L s I D E 淞S T I E 蛳内存接口标识符A E E C L S I DM E N U C T L 菜单控件接口标识符A E E C L S I D _ N A T I V E B M P 图像接口标识符A E E C L S I D P N GP N G 接口标识符A E E C L S I DP O S D E TP o s D e t 接口标识符A E E C L S I D _ S O U R C E U T I L 源实用程序标识符A E E C L S I DS O U N D P L A Y E R 声音播放器接
43、口标识符A E E C L S I D _ R I N G E R M G R 振铃器接口标识符A E E C L S I D _ R S AR S A 接口标识符A E E C L S I D _ S O F T K E Y C T L 软键菜单控件标识符A E E C L S I DS H E L LI S h e ll 标识符A E E C L S I D _ S O U N D 声音接口标识符A E E C L S I D _ S T A T I C 静态文本控件接口标识符A E E C L S I D S T O P W A T C H C T L 秒表控件接口标识符A E E C
44、L S I D _ T A P IT A P I 接口标识符A E E C L S I D _ T E X T C T L 文本控件接口标识符A E E C L S I D _ W E BW e b 接口标识符A E E C L S I D _ W E B U T I LW e b 应用程序的实用程序接口标识符A E E C L S I D _ W I N B M PW i n d o w s 位图浏览器接口标识符在S D K 提供的A E E C I a s s l D s h 头文件中已预定义了这些I D 的值。归属项目:项目级别:http:/ 2 小程序C l a s s l D:在A
45、E E 平台上运行的每个B R E W 小程序也必须拥有唯一的标识符,在加载小程序时会向A e e 夕b 壳传递I D,外壳随后将使用该I D 来加载并管理小程序,因此小程序的I D 必须具有唯一性。4 1 3 创建实例B R E W 用于支持小程序和模块创建的机制是I S H E L L _ C r e a t e I n s t a n c e 方法。该机制是B R E W 模型的核心,也是B R E W 支持的最强大的A P I 之一。调用该方法时,B R E W 将在支持的类列表中搜索指定的3 2 位已注册的C l a s s l D。该列表包含内核B R E WA P l 支持的条目
46、,另外还包含添加到系统的所有类和小程序,系统启动时会通过M I F 列举进行检测。类通过B R E W 模块支持的I M O D U L E C r e a t e I n s t a n c e 方法来创建。B R E W 将根据需要加载模块,加载后B R E W 将使用其I M o d u l e 实例御建请求的类。一个模块的所有对象在创建时必须增加其l M o d u l e 的引用计数,而在释放时减少I M o d u l e 的引用计数。在该模块I M o d u l e 类的引用计数变为零之前,模块会保持加载的状态,一旦引用变为零,B R E W 将自动释放与该模块相关所有内存。这
47、种方法象W i n d o w s 编程中使用C O M 对象一样,创建实例的过程基本上是统一的,程序员一般不必干预此过程,这样有利于开发和运行的效率。4 1 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 和释放方法以及H a n d l e E v e n t 函数。B R E W 在两种情况下创建小程序响应I S H E L L _ S t a r t A p p l e t 函数以允许小程序启动这种情况下将创建小
48、程序,并立即发送E V T A P P S T A R T 事件,E V T A P P S T A R T 会通知小程序已经激活并绘制归属项目:项目级别:http:/ 屏幕。响应注册的通知和警报这种情况下将创建小程序并立即收到通知的特定事件。中止小程序通过由B R E w 系统自动调用R e l e a s e 方法完成,只要在R e l e a s e 方法加入释放自定义的内存和资源即可。如果在A E E C l s C r e a t e l n s t a n c e 0 函数中分配了内存,在创建小程序实例时则在E v T _ A P P S T O P 中释放该内存将十分危险,所以必
49、须在E V T A P P S T O P 中清除E V T A P P S T A R T 中分配的全部内存,并在A P P F r e e D a t a()函数内部释放A E E C l s C r e a t e l n s t a n c e 0 中的所有内存4 1 5 恢复小程序在E m u l a t o r 中,可以模拟发送E V T A P P S U S P E N D 事件,方法是在A p p M a n a g e r 中运行小程序然,后从E m u l a t o r 菜单栏的一个菜单中选择一个选项,设置B R E W,会立即将E V T A P P S U S P
50、E N D 事件发送到小程序。如果在设置对话框中单击取消B R E W 会发送E V T A P P R E S U M E 事件,总之请记住以下关键点:如果小程序不处理中止事件B R E W 将发送E V T A P P S T O P 来中止小程序然后发送E V T A P P S T A R T 事件重新启动小程序而不是恢复小程序。如果在A E E C l s C r e a t e l a s t a u c e()函数中分配内存不可在E V T _ A P P s T O P 中释放该内存。4 1 6 处理小程序事件事件处理是B R E W 编程中最重要的过程,来自无线网络、B R