BREW 资料
时间:10-02
整理:3721RD
点击:
第 1 页 共 45 页
目 录
第一章 引 言........................................................................................................................... 1
1.1 研究背景........................................................................................................................ 3
1.2 BREW 技术的发展情况.................................................................................................. 3
1.3 本文研究的主要内容.................................................................................................... 4
第二章 BREW 技术概要.......................................................................................................... 5
2.1 BREW 概述 .................................................................................................................... 5
2.2 BREW 的结构与环境...................................................................................................... 6
2.2.1 BREW的体系结构.............................................................................................. 6
2.2.2 BREW 的运行环境............................................................................................. 6
2.2.3 BREW的分发环境.............................................................................................. 7
2.2.4 BREW和硬件...................................................................................................... 7
2.3 BREW 的主要内容.......................................................................................................... 7
2.3.1 BREW 应用程序平台......................................................................................... 7
2.3.2 BREW 移植包..................................................................................................... 8
2.3.3 BREW SDK(软件开发包)............................................................................... 8
2.3.4 BREW 发布系统 (BDS) ..................................................................................... 8
2.3.5 应用程序类型................................................................................................... 9
2.4 BREW 的用户端处理技术的分析 ................................................................................ 9
2.4.1 真正的实时处理............................................................................................. 9
2.4.2 快速信息交互................................................................................................. 9
2.4.3 更加个性化的移动体验 --无线方式.......................................................... 10
2.4.4 最低的软硬件要求.......................................................................................... 10
第三章 基于BREW 软件开发基础..............................................................................................11
3.1 BREW 软件开发包........................................................................................................11
3.1.1 BREW MIF Edit ..............................................................................................11
3.1.2 BREW Emulator ..............................................................................................11
3.1.3 BREW Resource Edit ................................................................................... 12
3.1.4 BREW Device Configurator........................................................................ 12
3.2 基于BREW 系统的开发步骤........................................................................................ 12
3.2.1.利用BREW SDK 和模拟器,在 PC上开发和测试.......................................... 12
3.2.2.利用交叉编译器生成.mod 文件.................................................................... 12
3.2.3.获取测试数字签名......................................................................................... 12
3.2.4 按一定的目录形式,将文件上传到手机上................................................... 13
第四章 系统的结构设计..................................................................................................... 14 中国地质大学(武汉)学士学位论文 2005/06
第 2 页 共 45 页
4.1 系统的产生背景.......................................................................................................... 14
4.2 设计目标...................................................................................................................... 14
4.2.1 功能可扩展性.................................................................................................. 14
4.2.2 结构可扩展性.................................................................................................. 14
4.3 系统需求分析.............................................................................................................. 15
4.3.1.软件界面需求................................................................................................. 15
4.3.2.软件的UI 设计............................................................................................... 16
4.3.3.软件的I/O 设计............................................................................................. 16
4.3.4.资源需求设计................................................................................................. 16
4.4 基本流程图和状态转移表.......................................................................................... 18
4.5 系统模块设计.............................................................................................................. 19
第五章 系统详细设计与实现................................................................................................... 20
5.1. 数据类....................................................................................................................... 20
5.2.功能模块去驱动模块之间的接口............................................................................. 21
5.3.驱动模块..................................................................................................................... 21
5.4.菜单模块..................................................................................................................... 22
5.5.按键消息处理模块..................................................................................................... 23
5.6.图像模块..................................................................................................................... 23
5.7 定位模块...................................................................................................................... 26
5.7.1.定位请求......................................................................................................... 26
5.7.2.定位回调函数................................................................................................. 27
5.8 系统实现心得与体会................................................................................................. 28
5.9 本章小结...................................................................................................................... 29
第六章 系统测试与分析........................................................................................................... 30
6.1 测试工具...................................................................................................................... 30
6.2.测试选项..................................................................................................................... 30
6.3.测试结果..................................................................................................................... 30
6.3.1.主图形菜单界面............................................................................................. 30
6.3.2.“城市手册”界面,测试结果(图 6.1-6.6)........................................... 31
6.3.3.“我的位置”界面,测试结果(图 6.7-6.14)......................................... 32
6.3.4.“交通信息”界面,测试结果(图 6.15-6.24)....................................... 33
6.3.5.“个性设置”界面,测试结果(图 6.25-6.27)....................................... 35
6.3.6.“使用指南”界面,测试结果(图 6.28-6.29)....................................... 35
6.4 本章小结..................................................................................................................... 36
第七章 总结............................................................................................................................... 37
感谢............................................................................................................................................. 38
附录............................................................................................................................................. 39
参考文献..................................................................................................................................... 45 中国地质大学(武汉)学士学位论文 2005/06
第 3 页 共 45 页
第一章 引 言
1.1 研究背景
当今社会已步入智能手机时代,手机已不再像以前那样只有单调而又简单
的功能,现在的手机能像电脑一样,能下载或者安装不同的手机软件使用和运
行。可以想象使用移动电话来办公给人们带来的方便、经济等等诸多好处.现
在,qualcomm 的 Binary Runtime Environment for Wireless (BREW) 可以实
现这一点.
手机移动办公的服务特点包括几方:第一,针对性强,能智能地提取与信
息服务需求者有关事物的信息与服务;第二,不受时间、空间的限制,使用灵
活方便,只要在移动网络覆盖的范围都可以接收服务;第三,对终端要求低,
用户只需要拥有一台支持服务的手机即可。
手机移动办公系统的巨大价值在于通过移动和固定网络发送准确及时的信
息给用户,使这种服务可以应用到任何人、任何时间、任何位置。
手机移动办公系统目前正发展起来,它得到广泛应用的原因在于:
1)市场需求越来越大。
无论是公众还是行业用户,对于移动办公查询服务都有着广泛的需求。
对于公众来说,主要是要求系统提供位置服务信息、城市导游信息、旅游
咨询信息、城市交通信息等,具体有查询位置、附近的商场酒店、火车飞
机的票务信息、旅游景点等;对于行业应用,在交通方面可以开发物流配
送调度管理系统(包括车队和船队) ,公交车辆指挥调度系统、车辆跟踪防
盗系统、车辆智能导航系统、铁路列车调度系统;在农业、环保、医疗、
消防、警务、国防、旅游等方面可以开发智能农业生产系统、环境监测管
理系统、紧急救援指挥调度系统、智能接警处警系统、支持作战单元的移
动式空间信息交换系统、旅游调度管理系统等;总之,移动办公查询服务
有着巨大的市场潜力。
2)共赢的产业价值链。
BREW 可以催生高价值的应用。巨大的市场吸引着生产商、开发商、运营
商投资,使得网络运营更优化 、设备制造更经济 、应用开发更便捷、 用户体
验更美好。
1.2 BREW 技术的发展情况
美国高通公司 2001 年推出二进制运行环境(Binary Runtime Environment
for Wireless) 增值业务开发运行的基本平台。 中国地质大学(武汉)学士学位论文 2005/06
第 4 页 共 45 页
韩国 KTF 于 2001 年 11 月开始提供基于 BREW 平台的商用服务,统计数字表
明,市场反响相当强烈,无论是业务内容还是业务质量,在用户眼中的吸引力
都不断增强,赢利潜力非常可观。
2002 年 8 月 26 日美国圣地亚哥,中国联通和美国高通公司达成协议:中国
联通将于2002年底在其CDMA网络中开通基于高通BREW解决方案的新型无线应
用商业服务。届时,中国联通的无线用户将能够使用 BREW 平台下载他们喜爱和
需要的应用程序,对其 BREW 移动电话进行个性化配置。2003年2月26日中国
联合通信有限公司和美国高通公司的合资公司联通 BREW 无线技术有限公司正
式宣布成立,合资首期注册资金数千万人民币,投资双方各占 50%的所有权。
在 2004 年年初,中国联通神奇宝典 BREW 的活跃用户才仅仅 7 万,下载量也
仅为 40 万,到 2004 年年底,BREW 已经发展到拥有 100 万活跃用户、170 万注
册用户、下载量超过 1000 万的规模,手机激活率也从原来的 22%上升到 42%。
截止 2005 年 3 月,BREW 平台已经在全球 24 个国家的 46 个运营商的网络上
运行,全球基于 BREW应用程序的下载数量已经超过 2.75 亿次。
1.3 本文研究的主要内容
论文共分为七个部分,全文组织结构为:
第一部分提出本文的研究背景, 对 BREW技术以及其应用在国内外现状进
行综述,并介绍了全文的主要研究内容。
第二部分对 BREW 技术做了全面的介绍。主要包括 BREW 的定义、体系
结构与运行环境、主要内容以及对处理技术的分析。
第三部分简单介绍了 BREW软件开发工具以及基本开发步骤。
第四部分是系统的结构设计,主要包括系统的产生背景、设计目标、需求
分析,基本流程图、状态转移表以及软件模块设计。
第五部分重点对移动办公系统进行了详尽的实现描述,对各个模块的实现
做出了介绍 。最后对系统的软件实现做出了总结。
第六部分给出移动办公系统实际测试结果和应用效果。
第七部分总结了全文的工作,提出了论文所作的工作、创新点和系统不足,
提出了手机移动办公进一步发展的研究方向。 中国地质大学(武汉)学士学位论文 2005/06
第 5 页 共 45 页
第二章 BREW 技术概要
2.1 BREW 概述
BREW 就是无线二进制运行环境(Binary Runtime Environment for
Wireless), 是高通公司 2001 年推出的基于 CDMA 网络 "无线互联网发射平台"
上增值业务开发运行的基本平台。该平台是一种开放的端到端的解决方案,也
是唯一能够使应用开发商、 设备厂商以及网络运营商从数据业务中获益的途径。
BREW 是一种技术,同时也是一种灵活的"一揽子"业务系统。
借助 BREW,技术门槛以及产品上市门槛都将得以降低。设备厂商、网络运
营商以及应用开发商可以高效开发、部署、购买并售卖最新的数据应用,并从
中获益。
BREW 提供一个高效、低成本、可扩展和熟悉的应用程序执行环境(AEE),
着重开发可无缝植入任何实际手持设备的应用程序。制造商和开发人员可以随
时对运行环境进行扩展,提供应用程序需要的各种附加性能模块,如"无线互联
网发射平台"中包含的多媒体、多种连接方式、位置服务、用户界面、网络等功
能套件。BREW 提供的功能环境就好像 PC 机上的操作系统一样,可以通过服务
提供商下载指定类型的应用程序或游戏来使用。同时,通过 BREW 接口功能,供
应商可以提供成套的完整的资讯、商务、娱乐功能。在将来的版本中,BREW内
核类将能提供诸如蓝牙技术、全球定位系统(gps) 和基于数据业务的电话等服
务。由于需要更少的内部应用程序开发和集成任务,OEM 可以更加快速地推出
新设备。用户可以选择和下载适合自己个人喜好的无线软件。通过这种方式,
用户将推动新的无线数据应用程序和服务市场的发展。
BREW 主要应用在移动通信领域,BREW 类似一个开放免费的 PC 操作系统,
其他厂商可以在这个平台上设计各项应用。作为一个手机应用平台,BREW 能支
持高速上网、下载游戏、无线购物等几十种数据业务。厂商使用 BREW 设计一款
应用软件,所有装载高通芯片的手机都可以使用,不会出现 JAVA(另一种平台)
上不同手机型号需要分别设计的麻烦。 此外, BREW 还兼容其他语言, 包括 JAVA、
FLASH。 中国地质大学(武汉)学士学位论文 2005/06
第 6 页 共 45 页
2.2 BREW 的结构与环境
2.2.1 BREW 的体系结构
BREW 的 API(应用程序接口)和 SDK(软件开发工具)极大地简化了用 C、C++
和其它语言开发无线应用。BREW 的 API 以一组接口类的方式组织起来,每个类
定义提供某一特定服务的一组函数,使开发商无需了解设备的内部机理也能从
事无线应用的开发。
BREW Emulator 使开发人员可以测试无线应用在一系列仿真设备 Windows
环境下运行的状况,这样就免去了在真实设备中的测试。熟悉驱动图形界面环
境的开发商将会发现 BREWAPI 好学易用。事件处理、菜单、对话、资源、编辑、
基于文件的长期储存和记录导向型的数据库是 BREW 中标准的概念。而且,基于
Windows 的模拟环境使那些对 Windows 应用程序编写熟练的程序员可以特别轻
松地用 Visual C++去开发 BREW 应用。
由于 BREW API 可适用于多种设备,利用 BREW API 编写的程序可以轻松地
从一个无线设备移植到其他无线设备中。所以开发商编程一次,就可运行在多
种设备中。虽然不同设备由于显示尺寸不同可能要对程序进行微调,但大多种
这种细微的调整可以在 BREW Emulator 中轻易地测试出来。BREWAPI 可以支持
扩展名,设备厂商、运营商和开发商可以编写插件类来拓展 BREW 的功能。
2.2.2 BREW 的运行环境
BREW 的应用执行环境(AEE)是一个精巧的软件接口层。设备厂商将它集成
在各自的软件中,以支持 BREW API 和运行环境。在一个新终端设备中提供 AEE
要求设备厂商只要移植 AEE 即可,此外, BREW Emulator 中提供了一个 AEE 的
Windows 端口,所以 BREW Emulator 可以运行针对 Windows 的小程序。由于 AEE
占用的随机存储器和闪存极小,BREW 不但可以使高档机型锦上添花,而且在低
端主流机型中也能大显身手。
除了向应用提供 BREW API 服务,AEE 同时管理着应用程序的执行,及时响
应用户和一些紧急事件,如来电和短信呼入。比如说,一个正在运行的 BREW
应用当有来电呼入时,可以自动立即暂停;并在通话完毕之后,再自动恢复工
作。 中国地质大学(武汉)学士学位论文 2005/06
第 7 页 共 45 页
2.2.3 BREW 的分发环境
BDS 是一项具有突破性的技术,它使得终端用户可以利用手机或其他无线
设备以无线的方式下载应用。无线应用开发商可以根据用户购买应用的数量得
到相应的回报。
为了确保 BREW 应用安全下载,一个名为 True BREW 的独立测试流程可以确
保开发商提供的应用模式安全稳定地运行在终端上,而且同 BREW 平台兼容。支
持 BREW 的终端只能运行经过开发商、运营商和高通数字签名的应用。有些运营
商只提供经过 True BREW 测试的应用。
2.2.4 BREW 和硬件
BREW AEE 可以移植到使用 QUALCOMM MSM3100 和 CDMA 系列芯片的无线终
端。 BREW 还将支持其它制式终端的 AEE 移植。 下面介绍一下目前 QUALCOMM CDMA
芯片支持的一些高级功能,以及 BREW 是如何利用这些功能的:
·ARM 内核:BREW 利用 ARM 内核支持一系列操作系统和电话服务。支持 BREW
运行的终端都采用基于嵌入式 RISC 微处理器的 ARM 体系结构。
· Pure Voice :BREW 可以通过终端中的音响系统播放 QUALCOMM Pure Voice
格式优化的高级音乐文件。
·CMX:BREW 可以利用 ASIC 支持 CMX,在终端的音响系统中播放 MIDI 文件。
·蓝牙: 一种短程无线电技术, 支持数字设备短程无线互联。 未来版本的 BREW
将支持蓝牙连接。
·语音识别:未来版本的 BREW 将调用芯片组中的语音识别服务,支持相应的
应用。
2.3 BREW 的主要内容
BREW 运行时环境是一个较薄的软件接口层, 位于芯片系统软件和应用程序
间的无线设备上, 使最终用户可以无线下载程序并在启用 BREW 的设备上运行。
BREW 具有较高的闪存和 RAM 使用效率。它包括以下内容:
2.3.1 BREW 应用程序平台
完整的 BREW 解决方案始于无线设备上驻留的开放、标准应用程序执行平
台。 中国地质大学(武汉)学士学位论文 2005/06
第 8 页 共 45 页
瘦薄:BREW 并不仅仅是为 PC 或 PDA 开发的产品的缩减版本,它比其它应
用程序平台或成熟的操作系统小许多倍。
快速:BREW 平台正位于芯片系统软件之上,启用了快速 C/C++ 本地应用程
序,以及浏览器与基于 Java 技术和扩展的虚拟机(例如游戏引擎和音乐播放
器)的简易集成。
开放:除本地 C/C++ 以外,BREW 还支持其它多种语言,包括 Java、可扩
展标识语言 (XML)、 Flash 等执行环境。 而且, 由于它可以驻留在采用 Palm 等
任何移动操作系统 (OS) 的智能手机上, 因而可使用 BREW 发布系统 (BDS) 无
线下载为这些 OS 编写的应用程序, 并像 BREW 应用程序一样使之商品化。
可扩展: 第三方可以为 BREW 平台编写扩展, 从而向应用程序提供附加功能。
成本效益高:降低开发成本,并缩短设备制造商的产品面市时间。设备制造
商可以在开发应用程序和为不同型号产品配备应用程序方面花费很少的时间,
而将更多的时间投入产品设计。
安全:BREW 对基本的电话和无线网络运行提供保护。
2.3.2 BREW 移植包
BREW 平台所承诺的无限简化产品与服务的开发和制造, 其核心就是 BREW
移植包。它缩短了将 BREW 平台集成到新研制设备中的过程。
2.3.3 BREW SDK(软件开发包)
BREW SDK 由一整套工具和服务组成,使应用程序开发者能够为各种手
持设备快速、高效、经济地开发和配置新的应用程序。
BREW SDK 可使开发者使用标准工具在熟悉的环境中工作。 也就是说,可
以在无需知道芯片系统源代码及与设备制造商没有直接关系的前提下编写基于
BREW 的设备中使用的应用程序。
2.3.4 BREW 发布系统 (BDS)
BDS 使运营商可以轻松地将从开发者手中获得的应用程序投放到市场,并
协调结算和支付。
运营商可以根据需要调整 BDS, 包括管理他们自己的应用程序发布及定价、
选择第三方管理应用程序。 中国地质大学(武汉)学士学位论文 2005/06
第 9 页 共 45 页
2.3.5 应用程序类型
BREW 使用户可以仅以所需的应用程序来自定义手持设备。 用户只需按几
个按钮,即可从众多的应用程序中进行选择。
通信 - 即时通信、电子邮件、 铃声和其它互动消息传送
定位 - 映射、浏览、 交通和其它特定定位内容
效率工具 - 移动同步办公应用程序和实用工具,提高了个人效率
游戏 - 单个玩家和多个玩家间的互动游戏
移动商务 - 账户余额、零售、股票交易等金融交易。
娱乐 - 音乐、录像、幽默,甚至追踪某一事件
信息 - 航班跟踪、新闻、天气、 体育和其它日常信息 扩展 - 开发者可
以在应用程序中使用的强大的 BREW 平台第三方扩展
2.4 BREW 的用户端处理技术的分析
2.4.1 真正的实时处理
借助用户端处理特性,各种新型应用(如动作游戏)即可开发出来,因为借
助 BREW 平台用户能够将应用下载到电话之中并运行之。 即便是在电路交换网络
之中,应用也可以即刻启动,因为这些应用安装在电话之上--无需等待即将发
起的数据呼叫。
BREW 可以通过提供真正的实时处理功能扩展自己的优势,实现其他应用--
特别是那些基于语音的应用。
2.4.2 快速信息交互
借助用户端执行特性, 用户只需花费几秒钟即可将有关特定景点的旅游信息
数据库下载到自己的手持设备中,然后在数据库中进行搜索,快速寻找合适的
地图,这一切根据需要可以随时完成。与此同时,本地存储的信息还可用来增
强个性化定位服务的定位信息功 能。所有用户都可以享受快速响应这一优势,
而无需考虑网络的带宽问题。
BREW 可以同电话的基本通话功能紧密整合,增强用户端执行功能。开发人
员可以非常轻松地编写各种应用,充分利用 BREW 的通话管理功能,因此,当用
户接收呼叫或 SMS 消息时,应用可以自动暂停并在随后恢复运行。 中国地质大学(武汉)学士学位论文 2005/06
第 10 页 共 45 页
2.4.3 更加个性化的移动体验 --无线方式
最终用户可以利用多种应用以 及各种生活信息精确定制自己的电话,并根
据自己的意愿随时修改这些应用。用户可以下载所有能够提高工作效率的应用
(如财务计算器、股票行情跟踪应用以及新型联络信息数据库),实现手机的
个性化,与此同时,他们也可以下载各种娱乐应用以及个性化铃声。这些内容
都可以通过无线方式实现,无需电缆或者 PC 连接。
BREW 应用平台使得网络运营商可以通过无线方式安装、招回并升级应用。
即便是特定电话应用,用户也无需将手机拿到商店或者运营商那里接受服务。
2.4.4 最低的软硬件要求
BREW 平台精致小巧--仅占用大约 150K 的空 间--高效而功能强大,无需为
每种型号的电话配备独立的虚拟机 (VM)。如果运营商希望在一款手机上同时
采用 J2ME 以及 BREW 技术,仅需一台 VM,过一段时间他们即可利用多种 VM 功
能选项。目前,IBM 正在将自己的 Web Sphere 微环境(即以前众所周知的 J9)
移植到 BREW 中,HP 也在将在自己的 MICroChai 环境移植到 BREW 中。这为其他
公司的 VM 移植打开了大门。
中国地质大学(武汉)学士学位论文 2005/06
第 11 页 共 45 页
第三章 基于BREW软件开发基础
3.1 BREW 软件开发包
BREW 应用程序开发者最重要的工具是 BREW 软件开发包 (BREW SDK)。
BREW SDK 由一整套工具和服务组成,使应用程序开发者能够为各种手持设备快
速、高效、经济地开发和配置新的应用程序。下面将介绍 BREW SDK 中包含的
主要组件:
3.1.1 BREW MIF Edit
MIF 中包含每个模块类的唯一 ClassID,并指定导出哪些类供其它模块使
用。 MIF 中还包含每个小程序类的文本字符串,以及在可运行小程序菜单中代
表小程序的一个或多个图形图标。 MIF 中还包含其它可确定模块权限级别(可
被模块类调用的 BREW API 函数)的信息,以及模块可从其它 BREW 类接收到
的通知。
在 Emulator 上运行小程序时,每个模块都可以拥有多个 MIF,各代表被模
拟的每种设备色深。 由于 MIF 中包含图形图像,因此可以选择适用于每个设
备显示功能的图像,并保存在单独的 MIF 中。 Emulator 允许 MIF 目录的选择
独立于包含模块可执行文件的目录,以便在多个设备上模拟小程序的执行。
在 BREW 设备上,MIF 保存在包含每个模块目录的 BREW 文件夹下。 模块目录
的名称与 MIF 的前缀名称相同。
3.1.2 BREW Emulator
即 BREW 模拟器,可以用来模拟各种手持设备,并测试在 BREW 环境下开发
的小程序和类。对于手机设备案件的模拟输入,不仅可以通过单击 Emulator
中的按键图像区来完成,也可以通过单击相应的台式电脑键盘来模拟输入 。小
程序生成的屏幕输出显示在设备图像的屏幕区,用户不仅可以选择按照设备时
间的屏幕大小来查看应用程序和类, 而且可以在 Configurator 配置文件指定的
屏幕大小来查看。它主要用来测试应用。 中国地质大学(武汉)学士学位论文 2005/06
第 12 页 共 45 页
3.1.3 BREW Resource Edit
BREW 资源编辑器允许您创建应用程序中使用的对话框、字符串、二进制
以及对象。 您还可以使用资源编辑器创建控件,如:菜单、列表、日期选择器
以及计时器等。 如果创建的应用程序需要使用不同语言在各种无线设备上运
行,这些资源将十分有用。
3.1.4 BREW Device Configurator
可用于创建和配置Emulator使用的设备文件,然后通过 Emulator,在各种
设备上测试应用程序。用户可以使用 Configurator 创建和定义设备文件,由来
模拟小程序执行期间的设备行为。将设备文件载入之后,就可以使用安装有
Windows 操作系统的计算机模拟BREW 小程序在各种设备上的运行了。
3.2 基于 BREW系统的开发步骤
3.2.1.利用BREW SDK 和模拟器,在PC 上开发和测试
这一步是开发的主体部分,台式 PC 机上安装了 BREW SDK 以后,在 Visual
C++的环境下创建 BREW Application Wizard,利用 BREW MIF Edit 创建一个对
应的.mif 文件,并且在.c 文件中相应位置添加代码,编译通过后生成.dll 文
件
这样,BREW Emulator 就可以模拟手机来测试应用程序了。
3.2.2.利用交叉编译器生成.mod 文件
应用程序写好了,并且在模拟器上面测试后,在台式 PC 机上用 ARM 编译器
或 GCC 编译器编译应用程序,生成相应的.mod 文件
3.2.3.获取测试数字签名
每一个 BREW 应用都需要签名,其主要的目的是为了防止应用被篡改,签名
文件分为两种:测试签名和产品签名。测试签名的生成需要应用的名字、手机中国地质大学(武汉)学士学位论文 2005/06
第 13 页 共 45 页
的 ESN(Electronic Serial Number)或 RUIM ID 这些信息,它允许任何应用
在同一款手机上面运行,有效期为 90 天。产品签名是当应用通过测试之后,在
将其放到 UAM 之前所做的数字签名,它允许一个应用在任何手机上运行。需要
用到的工具是测试签名生成器。
3.2.4 按一定的目录形式,将文件上传到手机上
安装好 BREW Tool Suite后, 即可使用AppLoader 把与运用相关的所有文件
通过数据线从 PC机上传送至 BREW手机上。到这一步,一个完整的 BREW 应
用就算完成了。
中国地质大学(武汉)学士学位论文 2005/06
第 14 页 共 45 页
第四章 系统的结构设计
4.1 系统的产生背景
截止 2005 年 3 月,BREW 平台已经在全球 24 个国家的 46 个运营商的网
络上运行,全球基于 BREW 应用程序的下载数量已经超过 2.75 亿次。在维持
原有的客户资源有增无减的基础上,笔者认为电信运营商应该将无线增值业务
大力推向企业事业单位,实现无线增值业务的行业应用,比如手机移动办公。
只要能将无线增值业务普遍应用到企业的日常办公中,加之成熟的管理、良好
的客服态度,势必会有促进整个行业应用的发展。那个时候电信运营商的无线
增值业务将会拥有一大批固定的企业级的客户资源,业务收入也将会得到稳定
的、大幅度的提升。
基于以上背景,本章将介绍一个移动办公商用系统的开发,通过该系统,
可以利用移动终端查询实时的生活娱乐等信息、查询个人的位置信息,并进行
实时的信息交流。移动终端完成了大量的辅助工作,大大的满足了用户的信息
需求,同时各种信息都直接以文本和地图等方式显示,这种信息表现方式避免
了语言描述的不精确性和不持久性,丰富了信息交流的手段而且提高了效率。
4.2 设计目标
移动办公系统有着不同的应用领域,随着今后人们需求的增加,移动办
公的服务内容应该更全面、更合理。因此,移动办公系统应具有以下两个特
性:
4.2.1 功能可扩展性
除了当前城市向导、位置服务等应用以外,终端软件还可以添加其他应用的
功能模块,比如热点追踪,它包括 IT 信息、打折信息、热点推荐、手机商
情等
4.2.2 结构可扩展性
要增加新的模块当然需要硬件的支持。因此,整个系统的结构设计也应该可
以升级,以满足新增功能的需求。
中国地质大学(武汉)学士学位论文 2005/06
第 15 页 共 45 页
4.3 系统需求分析
4.3.1.软件界面需求
系统软件主界面是 9 个图形选项(如图 4.1 所示) ,用户通过导航键盘来
选择城市向导、位置服务、旅游信息、个性设置等,以便进一步搜索自己需要
的信息。
图 4.1 系统软件主界面
城市向导:饮食、娱乐、购物、理财、单位查找信息服务。
分别可以查到酒店的地址电话等、娱乐项目的地址电话价格、
购物场所地址电话价格等
位置服务:显示地图、通知朋友
GPSONE 定位,显示自己所在位置信息(图片文字)
交通信息:公交线路查询、城市交通查询、车次信息查询、火车换乘
查询、航班查询
旅游信息:旅游景点、姓氏寻根、地名查询
个性设置:设置城市、我的收藏
中国地质大学(武汉)学士学位论文 2005/06
第 16 页 共 45 页
4.3.2.软件的 UI 设计
UI(User Interface,用户接口)是人机之间交互的接口。一个好的交互界面
能够使用户快速上手,便携操作,体验到效率。这里采用的 UI 是一些窗口、
LIST 菜单、ICON 菜单,SOFTKEY 菜单,按钮、文本输入框,每一个界面下
都有“确定” “退出”选项,部分界面还有使用说明。下面罗列了系统中使用到
的用于显示的接口和控件接口:
(1)用于显示的接口
IDisplay
IImage
IBitmap
IFont
(2)控件接口
IMenuCtl
ITextCtl
IDialog
4.3.3.软件的 I/O 设计
在信息下载到移动终端时需要用到存储技术,BREW中主要分为文件 I/O
和数据库技术两种,本系统采用前者。
在城市向导、位置服务、旅游信息服务中,读取资源时用到了文件存储技
术,主要是一些文本信息、图片信息等资源
4.3.4.资源需求设计
本系统相当于一个无线数据增值业务, 合法用户首先在个性设置中设置自
己所在的城市, 这样通过无线通信网络和 INTERNET, 连接到移动办公服务器,
手机会自动下载城市向导、旅游信息、交通信息等信息到本机的数据库中,以
供用户及时快速查询,下载完毕后进行相应的业务处理。对于定位信息服务则
是实时的查询,通过定位模块发送定位请求,经过CDMA网络中的定位平台得
到定位数据,然后位置数据在发送到固定网络的应用服务器组,经过业务服务
器、位置服务器进行相应的业务处理,最后将结果返回到终端。
注:为了系统开发方便,本系统直接将信息资源放在了系统中。 中国地质大学(武汉)学士学位论文 2005/06
第 17 页 共 45 页
4.3.4.1 城市向导、交通信息、旅游信息资源
以上三部分的设计大致相同,步骤如下:
1. 首先用户在界面下进入个性设置,设置当前所在城市,即发送服务请求;
2. CDMA 网络响应服务请求;
3. 手机终端将城市名和业务种类发送给业务服务器;
4. 业务服务器根据用户提交的城市名和业务种类向城市向导服务器提交信
息服务请求;
5. 城市向导服务器根据城市名和业务种类,将结果返回给业务服务器;
6. 业务服务器将结果发送给指定的用户终端。
7. 用户终端将结果放入本机数据库中,可以根据需要随时查询;
4.3.4.2 位置服务资源
图 4.2
如图 4.2 所示:
定位服务的主要步骤如下:
1. 定位手机发送定位请求;
2. 定位响应,通过 CDMA 网络定位平台计算出位置,响应定位;
3. 用户手机向业务服务器发送定位数据,主要包括经度和纬度;
4. 业务服务器根据用户提交的经纬度向位置服务器提交位置请求;
5. 位置服务器根据经纬度算出用户当前位置地图,将结果返回给业务服务
器;
6. 业务服务器将结果发送给指定的用户终端。 中国地质大学(武汉)学士学位论文 2005/06
第 18 页 共 45 页
4.4 基本流程图和状态转移表
图 4.3 基本的流程图
按 键 使用位置 功 能
AVK_END 任何屏幕 直接退出程序
AVK_UP 所有菜单界面 向上滚动一行
AVK_DOWN 所有菜单界面 向下滚动一行
AVK_LEFT 主图形菜单界面 向左滚动一行
AVK_RIGHT 主图形菜单界面 向右滚动一行
AVK_SOFT1 所有菜单界面 进入当前激活项
AVK_SOFT2 所有界面 返回主界面
AVK_CLEAR 所有菜单界面 返回主界面
AVK_SELECT 所有菜单界面 进入当前激活项
表 4.1 状态转移表
用户界面
城市手册 旅游信息 交通信息 个性设置
选 择
位置服务
本机数据库 业务服务器
结果显示
信息
数据
业务服务器 中国地质大学(武汉)学士学位论文 2005/06
第 19 页 共 45 页
4.5 系统模块设计
程序以界面视图为单位来组织。所以,本系统共有 6 个主要界面:系统界
面、城市手册界面、交通信息界面、旅游信息界面、位置信息界面、个性设置
界面。笔者共设计了 4 个功能模块(菜单模块、消息处理模块、图像模块、定
位模块)来处理与这 6 个界面相关的数据和界面更新。另外还需要设计一个驱
动模块来管理这些功能模块。程序运行时,有且只有一个模块处于激活状态,
处于激活状态的这个模块负责处理数据和界面的更新,需要节目切换时,由驱
动模块关闭当前活动的功能模块然后打开新的功能模块。模块关系如图所示。
图 4.4 系统模块图
驱动模块
菜单模块
消息处理
模块
图像模块
定位模块
中国地质大学(武汉)学士学位论文 2005/06
第 20 页 共 45 页
第五章 系统详细设计与实现
依据系统的结构设计、模块设计,系统具体设计如下:
5.1. 数据类
数据类中声明了需要用到的所有数据类型
typedef struct _MOApp
{
AEEApplet a;
IMenuCtl * m_pISoftKey; //软键
IMenuCtl * m_pIconMenu; //图形菜单
ITextCtl * m_pIText; //文本
IMenuCtl * m_pIMenu; //菜单
IImageCtl * m_pImage; //图像
AEERect m_rc;
IDisplay * m_pIDisplay;
int m_nLineHeight;
IBitmap * m_pBitmap; //原位图指针
IBitmap * m_pBitmap_OBJ;//目标位图指针
IBitmap * m_pBitmap_OBJ_OBJ;//第二个目标位图
IBitmap * pbmScreen;//屏幕显示指针
NativeColor pColor; //象素点的颜色
uint16 i;//循环变量,要足够大,即 65536>原位图文件的长和宽
uint16 j;
AEEBitmapInfo bi;
AEEDeviceInfo m_dInfo;
}CMOApp; 中国地质大学(武汉)学士学位论文 2005/06
第 21 页 共 45 页
5.2.功能模块去驱动模块之间的接口
驱动模块提供 SetActive()函数接口,用于进行功能模块的切换。模块切换
的发起者是当前处于激活状态的功能模块,用 IMENUCTL_IsActive()来判断。
功能模块提供以下函数接口供驱动模块调用:
MobileOffice_InitAppData() 用于初始化功能模块数据
BuildMainMenu() 用于创建主界面菜单
MobileOfficeUsage () 用于创建功能界面菜单
5.3.驱动模块
首先调用 AEEClsCreateInstance()注册实际的数据类 CAndyApp、消息处
理函数 MobileOffice_HandleEvent()、和资源初始化函数 MobileOffice_
InitApp 资源释放函数 MobileOffice_FreeAppData()。驱动模块
MobileOffice_HandleEvent()接收所有的消息。除了 EVT_APP_START 和
EVT_APP_STOP 消息, 驱动模块都交给当前激活的功能模块处理。 EVT_APP_START
表示程序启动,此时创建了各个功能菜单。并且建立了系统主菜单。
static boolean MobileOffice_HandleEvent(IApplet * pi, AEEEvent eCode,
uint16 wParam, uint32 dwParam)
{
CMOApp *pMe=(CMOApp*)pi;
// IShell * pIShell;
switch (eCode)
{
Case EVT_APP_START://程序开始
if(ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_ICONVIEWCTL,
(void **)&pMe->m_pIconMenu) != SUCCESS)
{
return FALSE;
}
……创建所有组件
BuildMainMenu(pMe);// 创建主菜单
return(TRUE);
case EVT_APP_STOP:// 程序终止
return TRUE;
case EVT_KEY: 中国地质大学(武汉)学士学位论文 2005/06
第 22 页 共 45 页
MobileOffice_SetActive (pMe,eCode,wParam,dwParam);
return(TRUE);
case EVT_COMMAND:
switch(wParam)
{ ……(详细代码见附件)
}
5.4.菜单模块
菜单模块用于对菜单进行添加、删除选项,本系统中用到了较多的菜单控件。
笔者采用的是系统提供的菜单 API。
MobileOfficeUsage (pMe,eCode,wParam,dwParam)
{
switch(wParam)
{
case USAGE_MENU_CITY:
……
case IDS_MENU_MFRIEND:
……
case USAGE_MENU_POSITION:
……
case USAGE_MENU_POP:
……
case USAGE_MENU_TRAFFIC:
……
case USAGE_MENU_TRAVEL:
……
case USAGE_MENU_CONFIG:
……
case USAGE_MENU_HELP:
……
case USAGE_MENU_QUIT:
……
default:
break; 中国地质大学(武汉)学士学位论文 2005/06
第 23 页 共 45 页
}
return TRUE;
}……(详细代码见附件)
}
5.5.按键消息处理模块
按键消息处理模块是比较核心的模块。对于手机的任何按键事件,系统需要做
出相应的反应。一旦检测到按下 select 键,那么就建立机执行被标记为当前选
项的功能。比如触发菜单、触发读取文件、触发创建文本框等等。该系统中,
大部分的按键事件处理由 MobileOffice_SetActive ()完成
static void MobileOffice_SetActive (CAndyApp * pMe,AEEEvent eCode,
uint16 wParam, uint32 dwParam)
{
AEERect *rect;
char* szBuf;
if(pMe->m_pIconMenu && IMENUCTL_IsActive (pMe->m_pIconMenu))
{
return IMENUCTL_HandleEvent(pMe->m_pIconMenu, EVT_KEY, wParam,
0);
}
else if(pMe->m_pIMenu && IMENUCTL_IsActive (pMe->m_pIMenu))
{
uint16 reet=IMENUCTL_GetSel(pMe->m_pIMenu);
switch(wParam)
{
case AVK_SOFT1:
case AVK_SELECT:
{
if(reet == USAGE_CITY_YINSHI)
{……(详细代码见附件)
}
5.6.图像模块
系统提供了 3 种图像接口----IGraphics、IImage 和 IBitmap, IImage 可用于中国地质大学(武汉)学士学位论文 2005/06
第 24 页 共 45 页
在屏幕上绘制位图图像和显示动画位图,该接口支持 Windows 位图(BMP)格式
以及一种特定设备专有的原位图格式(Native Bitmap Format) ;IBitmap 是一
个用于操作位图的接口,可以用来进行与位图相关的操作。在本系统中,大部
分的信息都是靠图片、文本的形式表现的,所以用到了这些接口。
1.显示图片信息
static boolean MobileOffice_Getmapinfo(CAndyApp * pMe, const char *
pszFile)
{
……
pi = ISHELL_LoadImage(pMe->a.m_pIShell,"map information.bmp"); //读取
从服务器获得的图片信息
if(pi)
{ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_IMAGECTL, (void
**)(&pvc));
if(pvc)
{
设置区域;
IIMAGECTL_SetProperties(pvc,CP_BORDER);// 指示控件绘制边
框...
…………
IIMAGECTL_Redraw(pvc); // 指示控件重绘...
}
IIMAGE_Release(pi);
}
}
2.对图片进行放大、缩小操作
对图像的放大、缩小操作原理是:对位图进行采样。如果缩放率是 2:1,则采
样的方法是隔一个像素点采样一次。同样道理,要是目标图像是原图像的 30%、
70%,就每 10 个像素里采样 3 次、7 次。
对于 2 维图片,首先对 X 轴方向采样,采样完毕后,再对 Y 轴采样。
以下是图片操作函数,通过设置 sampleX 、sampleY 值来实现扩\缩操作:
static int Bitmap_sampling(CAndyApp * pMe,uint16 sampleX, uint16
sampleY)
{
uint16 new_x; 中国地质大学(武汉)学士学位论文 2005/06
第 25 页 共 45 页
uint16 new_y;
int nErr;
AECHAR fmt[]={'%','d',0};
new_x=0;
new_y=0;
//创建目标位图的兼容位图,对 X 轴按照要求变换,而 Y 坐标不变
CHECK_ERROR(IBITMAP_CreateCompatibleBitmap(pMe->pbmScreen,
&pMe->m_pBitmap_OBJ, (uint16)((uint16)(pMe->bi.cx)*sampleX/100),
(uint16)((uint16)pMe->bi.cy)));
//对 X 轴按照要求变换
for(pMe->j=0;pMe->j<=(uint16)pMe->bi.cy;pMe->j++)//Y 轴不变
switch(sampleX) {
case 10://采样率为 1/10,每 10 个点采样一个点
case 20://采样率为 20/100,每 5 个点采样一个点
case 30://采样率为 30/100,每 3 个点采样一个点
case 50://采样率为 50/100,每 2 个点采样一个点
for(pMe->i=0;pMe->i<=(uint16)pMe->bi.cx;pMe->i=pMe->i+100/sample
X){//100/sampleX
//得到象素点
{ IBITMAP_GetPixel(pMe->m_pBitmap,
pMe->i,pMe->j, &pMe->pColor );
//写到新的位图中
IBITMAP_DrawPixel(pMe->m_pBitmap_OBJ,new_x++,new_y,pMe->pColor,A
EE_RO_COPY);
}
}
new_y++;
new_x=0;
break;
……(详细代码见附件)
}
中国地质大学(武汉)学士学位论文 2005/06
第 26 页 共 45 页
5.7 定位模块
5.7.1.定位请求
定位请求中首先要取得当前定位请求类型以及当前定位时间。 为提高效率,
每次定位结果以及定位时间都保留在一个缓存中,每当有新的请求命令时,首
先检查缓存中的上一次定位时间和当前定位时间差值, 如果小于某一个设定值,
则假定本次定位请求和上次请求是同一个定位请求或被定位者的位置在这段时
间内很可能没有产生显著变化,系统直接把缓冲的数据发回给定位请求者,否
则注册定位回调函数,进入处理。
图 5.1 定位算法
Static void PosititonRequest()
{
KeepPositionType();//保存定位类型
Time=GETTIMESECONDS();//获取当前定位时间
If(time>ValidPositionTime)
{//如果当前时间超过了上次定位的有效时间
当前定位时间
<有效定位时
上次定位有效 发送请求
提示定位
失败
获得定位请求类型、
定位时间
注册定位回调函数
注册成功
设置定位超时处理
显示正在连接网络
允许被定位
发送定位
失败数据
包
是
否
是 是
失败
成功 中国地质大学(武汉)学士学位论文 2005/06
第 27 页 共 45 页
if(!GetGPSPosition(pMe->m_pPosDeter))//注册回调函数
{//如果注册回调函数失败
if(m_nPosType==同意被定位请求)//如果是同意被定位请求,则发送定位
失败数据包
{
GetPosition(……,定位失败标志,……) ;
else//否则直接显示定位失败
{
RedrawPopWin(“提示,定位失败”);
}
else//如果注册回调函数成功,则显示正在连接 GPS 网络
{
RedrawPopWin(“正在连接 GPS 网络”);
打开定位超时处理开关;
}
}
else{//如果上次定位仍然有效,则直接用上次的坐标发送请求
GetPosition(……);
}
}
}
5.7.2.定位回调函数
定位是一个异步处理过程,通过定位回调函数可以获得每次的定位结果,
并将定位结果保存在数据结构 AEEGPSInfo 中。
程序首先得到经度、纬度等位置参数,清除定位超时标志。然后判断定位
是否真正成功。这可以通过经度纬度是否都为 0 来判断。如果失败,则提示本
次定位失败。如果成功,则保存本次定位的时间,然后向服务器发送刚刚得到
的位置参数,请求得到地图数据以便在终端显示。
Void GetPosCallBack(viod*pUser)
{
GPS 查找完成,超时=FALSE;
从 数据结构 AEEGPSInfo 中获得经度纬度;
if(定位不成功)
{//提示移动用户定位失败
RedrawPopWin(“提示移动用户定位失败”); 中国地质大学(武汉)学士学位论文 2005/06
第 28 页 共 45 页
Return:
}
KeepValidateTime();//记录下次有效定位时间
//向服务器发送刚刚得到的数据,请求得到地图和地址数据
GetPosition(指向通信结构指针;
自己的 ID;
……)
}
}
5.8 系统实现心得与体会
本系统的设计与实现涉及到 Microsoft Visual C++ 6.0 编程环境,笔者在几个
月的探索与研究中总结了 Microsoft Visual C++ 6.0 编程环境下,开发 BREW
应用的一些使用技巧和捷径,这些应该对大家来说有一定的帮助
1. 执行 NULL 指针检查
在以下两种情况下需执行检查:
• 创建 BREW 接口实例时必须检查 NULL 指针。 如果指针有误,则该接口将
无法使用。
• 检查 BREW 方法或已分配内存所传递和返回的所有指针,以确保它们的有
效性。 无效指针应使用异常处理机制进行处理。
2. 避免堆栈溢出。
不要将大数组放在堆栈上。 不要在函数内将大数组或变量声明为本地变量,因
为 BREW 环境可用的堆栈大小十分有限。 如果需要大量内存(例如,大于 256
字节),则使用动态内存分配操作符,例如 MALLOC 或 IHeap。
如果分配处于递归例程中,则动态分配缓冲区。 如果调用堆栈中的函数较深,
则监控之前大堆栈缓冲区的堆栈。
3.不要编写紧凑循环
使用紧凑循环会导致目标设备自动重置。 因此,不要编写需要花费大量时间处
理应用程序中单个事件的紧凑循环。 这样可以防止将其它事件传递给应用程
序,从而避免设备重置。
收到事件时,应用程序将进行所需处理,然后从该事件返回, 使得其它事件可
以发送到该应用程序。
4. 尽可能多的使用资源
使用资源存储特定语言的字符串、对话框和位图。 这有助于本地化应用程序,
将它从一种语言的目标设备移至另一种语言的目标设备。 不要在源文件中硬编
码这些类型的信息。 中国地质大学(武汉)学士学位论文 2005/06
第 29 页 共 45 页
5. 不要忘记清除内存
由于目标移动设备上的可用内存十分有限,因此必须释放未使用的内存。 在以
下两种情况下需释放内存:
• 必须释放所创建对象的所有实例。
• 应用程序终止时,必须释放所有动态内存(所有已分配内存)。
6.不使用全局或静态变量
BREW 结构不支持全局或静态变量, 因为动态下载的应用程序无法处理这些数据
类型。 此外,使用全局或静态变量可能导致连接器出现目标错误。 始终将持
久数据存储在小程序结构中。
5.9 本章小结
本章的内容是课题的核心,在前面一章系统的结构设计的基础之上,详细
介绍了系统中功能模块的实现方法。并构建了整个系统框架。最后,对于系统
实现过程中遇到的问题做出了总结。
中国地质大学(武汉)学士学位论文 2005/06
第 30 页 共 45 页
第六章 系统测试与分析
完成了编码,接下来的重要一步就是功能测试了。测试的目的在于检查需求
分析和代码详细设计两个阶段所预期实现的功能是否都已经正确实现。
6.1 测试工具
高通公司 BREW Emulator 2.0
6.2.测试选项
一个最简单的测试包括某些界面预期的按键功能列表(表 4.1),此外还要测
试需求分析中的各个功能选项。
6.3.测试结果
6.3.1.主图形菜单界面
通过导航键盘上、下、左、右键可以使活动焦点移动到各个选项上,按选择
键(AVK_SELECT)可以激活当前选项,结束键(红色键)退出程序。 中国地质大学(武汉)学士学位论文 2005/06
第 31 页 共 45 页
6.3.2.“城市手册”界面,测试结果 (图 6.1-6.6)
图 6.1-6.3
图 6.4-6.6 中国地质大学(武汉)学士学位论文 2005/06
第 32 页 共 45 页
6.3.3.“我的位置”界面,测试结果(图 6.7-6.14)
图 6.7-6.9
中国地质大学(武汉)学士学位论文 2005/06
第 33 页 共 45 页
图 6.10-6.14
6.3.4.“交通信息”界面,测试结果(图 6.15-6.24)
中国地质大学(武汉)学士学位论文 2005/06
第 34 页 共 45 页
图 6.15-6.24 中国地质大学(武汉)学士学位论文 2005/06
第 35 页 共 45 页
6.3.5.“个性设置”界面,测试结果(图 6.25-6.27)
图 6.25-6.27
6.3.6.“使用指南”界面,测试结果(图 6.28-6.29)
图 6.28-6.29
中国地质大学(武汉)学士学位论文 2005/06
第 36 页 共 45 页
6.4 本章小结
本章主要通过工具对系统终端软件进行了测试。29 个图片完成了系统的功能
演示。从测试结果来看本终端软件系统基本达到了预期的设计目的,当然还有
许多需要改进的地方,比如在系统美工方面、操作人性化方面,数据管理方面
有待进一步研究。
中国地质大学(武汉)学士学位论文 2005/06
第 37 页 共 45 页
第七章 总结
移动办公系统是现在手机无线数据通信中重要的一项增值业务,它把移动
终端、移动网络、互联网合为一体,用户可以通过在移动终端的软件界面上进
行操作,通过网络通信和移动终端数据存储技术,来达到信息查询、工作处理
等目的。
传统的移动办公是采用的是设备是便携电脑,和移动电话比起来,虽然它功
能比较强大,但是它价格昂贵,必须要有网线和电源,而且所谓“移动办公”
只是相对的,在某些领域实在不“便携” 。手机移动办公正好弥补了这写缺点,
越来越受到人们的重视,逐渐在一些领域得到应用。
按照课题的进度计划,笔者首先熟悉工程的编程环境,然后在一个月左右的
时间理解 BREW 手机开发原理和使用相应的平台开发工具, 最后花了近两个月时
间开发基于 BREW 的移动办公查询系统,并完成了毕业论文。系统软件的设计和
实现过程中,笔者积累了一些手机应用系统开发的经验,并且在移动办公领域
做了一些技术性尝试。利用 C\C++开发,大大提高了系统在移动终端上的运行
效率和可移植性。在实际应用中,本研究开发的软件经过编译后可以在多款基
于 BREW 技术的手机上面运行,如Sharp_Z-800,LG8380,TCL1699 等等。
目前, 手机移动办公刚刚开始起步, 应用类型比较单一, 许多问题有待解决。
比如终端的内存大小问题,以后信息量很大(都存放在本地)是否放的下,这
个需要手机制造商解决;安全问题, ;系统效率问题,如何提高响应时间;系统
集成问题,如何充分利用资源让它为系统服务等等。这些问题需要我们在今后
的工作中进一步解决、完善。同时也为我们今后的研究与开发工作指明了方向。
中国地质大学(武汉)学士学位论文 2005/06
第 38 页 共 45 页
感谢
时光飞逝,在中国地质大学(武汉)的四年中,我学到了不少知识,在此,
我谨向所有给我关心和帮助的良师益友表示衷心的感谢, 并致以最真诚的祝福!
首先我要感谢尊敬的刘丹老师,承蒙恩师的严格要求、系统安排与悉心指
导,使我顺利地完成了毕业设计以及毕业论文,他渊博的学识和严谨的治学态
度深深地激励着我,是我学习的楷模。
其次我要感谢蒋文鹃、童德等同学,系统开发中我们共同探讨,他们给我
提了一些很好的建议,感谢他们的无私帮助!
感谢在中国 BREW 手机论坛上那些朋友们!虽然我不知道你们的名字,但是
我要好好谢谢你们给我的细心帮助!
此外,对于曾经教导过我的老师们,在这里一并感谢。
尤其感谢我尊敬的父母、家人,虽然他们不在身边,但是他们给予了我全
力的支持、爱护和无私的奉献,使我顺利地完成学业。在此我深深地祝福他们!
愿以此拙做,献给所有关心帮助过我的人!
中国地质大学(武汉)学士学位论文 2005/06
第 39 页 共 45 页
附录
主程序清单(完整请参考光盘) :
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h"
#include "AEEMenu.h"
#include "AEEText.h"
#include "AEEStdLib.h"
#include "AEEFile.h" // AEE File Manager Services
#include "AEEMedia.h" // AEE Multimedia Services
#include "AEEImageCtl.h" // AEE ImageCtl Services
#include "AEEImage.h"
#include "AEE.h"
#include "AEEPosDet.h"
#include "MobileOffice.bid"
#include "system_res.h"
#define USAGE_BUS_LINE 1001
#define USAGE_CITY_TRFFIC 1002
#define USAGE_BUS_INF 1003
#define USAGE_TRAIN 1004
#define USAGE_AIR 1005
#define MENU_OK 1006
#define MENU_CANCEL 1007
#define USAGE_BUS_LINE_1 1008
#define USAGE_BUS_LINE_2 1009
#define USAGE_CITY_YINSHI 1010
#define USAGE_CITY_YULE 1011
#define USAGE_CITY_GOUWU 1012
#define USAGE_CITY_LICAI 1013
#define USAGE_CITY_DWCZ 1014
#define USAGE_RETURN_TO_MAIN_MENU 1015
#define USAGE_CITY_CANCEL 1016
#define USAGE_CITY_OK 1017
#define USAGE_YINSHI_ZC 1018 中国地质大学(武汉)学士学位论文 2005/06
第 40 页 共 45 页
#define USAGE_YINSHI_WC 1019
#define USAGE_YINSHI_KC 1020
#define USAGE_YINSHI_XC 1021
#define USAGE_YINSHI_HG 1022
#define USAGE_DWCZ_OK 1023
#define USAGE_DWCZ_CANCEL 1024
#define USAGE_POSITION_MYPOSITION 1025
#define USAGE_POSITION_ADD 1026
#define USAGE_POSITION_HELP 1027
#define USAGE_MENU_CITY 1028
#define USAGE_MENU_MFRIEND 1029
#define USAGE_MENU_POSITION 1030
#define USAGE_MENU_POP 1031
#define USAGE_MENU_TRAFFIC  
目 录
第一章 引 言........................................................................................................................... 1
1.1 研究背景........................................................................................................................ 3
1.2 BREW 技术的发展情况.................................................................................................. 3
1.3 本文研究的主要内容.................................................................................................... 4
第二章 BREW 技术概要.......................................................................................................... 5
2.1 BREW 概述 .................................................................................................................... 5
2.2 BREW 的结构与环境...................................................................................................... 6
2.2.1 BREW的体系结构.............................................................................................. 6
2.2.2 BREW 的运行环境............................................................................................. 6
2.2.3 BREW的分发环境.............................................................................................. 7
2.2.4 BREW和硬件...................................................................................................... 7
2.3 BREW 的主要内容.......................................................................................................... 7
2.3.1 BREW 应用程序平台......................................................................................... 7
2.3.2 BREW 移植包..................................................................................................... 8
2.3.3 BREW SDK(软件开发包)............................................................................... 8
2.3.4 BREW 发布系统 (BDS) ..................................................................................... 8
2.3.5 应用程序类型................................................................................................... 9
2.4 BREW 的用户端处理技术的分析 ................................................................................ 9
2.4.1 真正的实时处理............................................................................................. 9
2.4.2 快速信息交互................................................................................................. 9
2.4.3 更加个性化的移动体验 --无线方式.......................................................... 10
2.4.4 最低的软硬件要求.......................................................................................... 10
第三章 基于BREW 软件开发基础..............................................................................................11
3.1 BREW 软件开发包........................................................................................................11
3.1.1 BREW MIF Edit ..............................................................................................11
3.1.2 BREW Emulator ..............................................................................................11
3.1.3 BREW Resource Edit ................................................................................... 12
3.1.4 BREW Device Configurator........................................................................ 12
3.2 基于BREW 系统的开发步骤........................................................................................ 12
3.2.1.利用BREW SDK 和模拟器,在 PC上开发和测试.......................................... 12
3.2.2.利用交叉编译器生成.mod 文件.................................................................... 12
3.2.3.获取测试数字签名......................................................................................... 12
3.2.4 按一定的目录形式,将文件上传到手机上................................................... 13
第四章 系统的结构设计..................................................................................................... 14 中国地质大学(武汉)学士学位论文 2005/06
第 2 页 共 45 页
4.1 系统的产生背景.......................................................................................................... 14
4.2 设计目标...................................................................................................................... 14
4.2.1 功能可扩展性.................................................................................................. 14
4.2.2 结构可扩展性.................................................................................................. 14
4.3 系统需求分析.............................................................................................................. 15
4.3.1.软件界面需求................................................................................................. 15
4.3.2.软件的UI 设计............................................................................................... 16
4.3.3.软件的I/O 设计............................................................................................. 16
4.3.4.资源需求设计................................................................................................. 16
4.4 基本流程图和状态转移表.......................................................................................... 18
4.5 系统模块设计.............................................................................................................. 19
第五章 系统详细设计与实现................................................................................................... 20
5.1. 数据类....................................................................................................................... 20
5.2.功能模块去驱动模块之间的接口............................................................................. 21
5.3.驱动模块..................................................................................................................... 21
5.4.菜单模块..................................................................................................................... 22
5.5.按键消息处理模块..................................................................................................... 23
5.6.图像模块..................................................................................................................... 23
5.7 定位模块...................................................................................................................... 26
5.7.1.定位请求......................................................................................................... 26
5.7.2.定位回调函数................................................................................................. 27
5.8 系统实现心得与体会................................................................................................. 28
5.9 本章小结...................................................................................................................... 29
第六章 系统测试与分析........................................................................................................... 30
6.1 测试工具...................................................................................................................... 30
6.2.测试选项..................................................................................................................... 30
6.3.测试结果..................................................................................................................... 30
6.3.1.主图形菜单界面............................................................................................. 30
6.3.2.“城市手册”界面,测试结果(图 6.1-6.6)........................................... 31
6.3.3.“我的位置”界面,测试结果(图 6.7-6.14)......................................... 32
6.3.4.“交通信息”界面,测试结果(图 6.15-6.24)....................................... 33
6.3.5.“个性设置”界面,测试结果(图 6.25-6.27)....................................... 35
6.3.6.“使用指南”界面,测试结果(图 6.28-6.29)....................................... 35
6.4 本章小结..................................................................................................................... 36
第七章 总结............................................................................................................................... 37
感谢............................................................................................................................................. 38
附录............................................................................................................................................. 39
参考文献..................................................................................................................................... 45 中国地质大学(武汉)学士学位论文 2005/06
第 3 页 共 45 页
第一章 引 言
1.1 研究背景
当今社会已步入智能手机时代,手机已不再像以前那样只有单调而又简单
的功能,现在的手机能像电脑一样,能下载或者安装不同的手机软件使用和运
行。可以想象使用移动电话来办公给人们带来的方便、经济等等诸多好处.现
在,qualcomm 的 Binary Runtime Environment for Wireless (BREW) 可以实
现这一点.
手机移动办公的服务特点包括几方:第一,针对性强,能智能地提取与信
息服务需求者有关事物的信息与服务;第二,不受时间、空间的限制,使用灵
活方便,只要在移动网络覆盖的范围都可以接收服务;第三,对终端要求低,
用户只需要拥有一台支持服务的手机即可。
手机移动办公系统的巨大价值在于通过移动和固定网络发送准确及时的信
息给用户,使这种服务可以应用到任何人、任何时间、任何位置。
手机移动办公系统目前正发展起来,它得到广泛应用的原因在于:
1)市场需求越来越大。
无论是公众还是行业用户,对于移动办公查询服务都有着广泛的需求。
对于公众来说,主要是要求系统提供位置服务信息、城市导游信息、旅游
咨询信息、城市交通信息等,具体有查询位置、附近的商场酒店、火车飞
机的票务信息、旅游景点等;对于行业应用,在交通方面可以开发物流配
送调度管理系统(包括车队和船队) ,公交车辆指挥调度系统、车辆跟踪防
盗系统、车辆智能导航系统、铁路列车调度系统;在农业、环保、医疗、
消防、警务、国防、旅游等方面可以开发智能农业生产系统、环境监测管
理系统、紧急救援指挥调度系统、智能接警处警系统、支持作战单元的移
动式空间信息交换系统、旅游调度管理系统等;总之,移动办公查询服务
有着巨大的市场潜力。
2)共赢的产业价值链。
BREW 可以催生高价值的应用。巨大的市场吸引着生产商、开发商、运营
商投资,使得网络运营更优化 、设备制造更经济 、应用开发更便捷、 用户体
验更美好。
1.2 BREW 技术的发展情况
美国高通公司 2001 年推出二进制运行环境(Binary Runtime Environment
for Wireless) 增值业务开发运行的基本平台。 中国地质大学(武汉)学士学位论文 2005/06
第 4 页 共 45 页
韩国 KTF 于 2001 年 11 月开始提供基于 BREW 平台的商用服务,统计数字表
明,市场反响相当强烈,无论是业务内容还是业务质量,在用户眼中的吸引力
都不断增强,赢利潜力非常可观。
2002 年 8 月 26 日美国圣地亚哥,中国联通和美国高通公司达成协议:中国
联通将于2002年底在其CDMA网络中开通基于高通BREW解决方案的新型无线应
用商业服务。届时,中国联通的无线用户将能够使用 BREW 平台下载他们喜爱和
需要的应用程序,对其 BREW 移动电话进行个性化配置。2003年2月26日中国
联合通信有限公司和美国高通公司的合资公司联通 BREW 无线技术有限公司正
式宣布成立,合资首期注册资金数千万人民币,投资双方各占 50%的所有权。
在 2004 年年初,中国联通神奇宝典 BREW 的活跃用户才仅仅 7 万,下载量也
仅为 40 万,到 2004 年年底,BREW 已经发展到拥有 100 万活跃用户、170 万注
册用户、下载量超过 1000 万的规模,手机激活率也从原来的 22%上升到 42%。
截止 2005 年 3 月,BREW 平台已经在全球 24 个国家的 46 个运营商的网络上
运行,全球基于 BREW应用程序的下载数量已经超过 2.75 亿次。
1.3 本文研究的主要内容
论文共分为七个部分,全文组织结构为:
第一部分提出本文的研究背景, 对 BREW技术以及其应用在国内外现状进
行综述,并介绍了全文的主要研究内容。
第二部分对 BREW 技术做了全面的介绍。主要包括 BREW 的定义、体系
结构与运行环境、主要内容以及对处理技术的分析。
第三部分简单介绍了 BREW软件开发工具以及基本开发步骤。
第四部分是系统的结构设计,主要包括系统的产生背景、设计目标、需求
分析,基本流程图、状态转移表以及软件模块设计。
第五部分重点对移动办公系统进行了详尽的实现描述,对各个模块的实现
做出了介绍 。最后对系统的软件实现做出了总结。
第六部分给出移动办公系统实际测试结果和应用效果。
第七部分总结了全文的工作,提出了论文所作的工作、创新点和系统不足,
提出了手机移动办公进一步发展的研究方向。 中国地质大学(武汉)学士学位论文 2005/06
第 5 页 共 45 页
第二章 BREW 技术概要
2.1 BREW 概述
BREW 就是无线二进制运行环境(Binary Runtime Environment for
Wireless), 是高通公司 2001 年推出的基于 CDMA 网络 "无线互联网发射平台"
上增值业务开发运行的基本平台。该平台是一种开放的端到端的解决方案,也
是唯一能够使应用开发商、 设备厂商以及网络运营商从数据业务中获益的途径。
BREW 是一种技术,同时也是一种灵活的"一揽子"业务系统。
借助 BREW,技术门槛以及产品上市门槛都将得以降低。设备厂商、网络运
营商以及应用开发商可以高效开发、部署、购买并售卖最新的数据应用,并从
中获益。
BREW 提供一个高效、低成本、可扩展和熟悉的应用程序执行环境(AEE),
着重开发可无缝植入任何实际手持设备的应用程序。制造商和开发人员可以随
时对运行环境进行扩展,提供应用程序需要的各种附加性能模块,如"无线互联
网发射平台"中包含的多媒体、多种连接方式、位置服务、用户界面、网络等功
能套件。BREW 提供的功能环境就好像 PC 机上的操作系统一样,可以通过服务
提供商下载指定类型的应用程序或游戏来使用。同时,通过 BREW 接口功能,供
应商可以提供成套的完整的资讯、商务、娱乐功能。在将来的版本中,BREW内
核类将能提供诸如蓝牙技术、全球定位系统(gps) 和基于数据业务的电话等服
务。由于需要更少的内部应用程序开发和集成任务,OEM 可以更加快速地推出
新设备。用户可以选择和下载适合自己个人喜好的无线软件。通过这种方式,
用户将推动新的无线数据应用程序和服务市场的发展。
BREW 主要应用在移动通信领域,BREW 类似一个开放免费的 PC 操作系统,
其他厂商可以在这个平台上设计各项应用。作为一个手机应用平台,BREW 能支
持高速上网、下载游戏、无线购物等几十种数据业务。厂商使用 BREW 设计一款
应用软件,所有装载高通芯片的手机都可以使用,不会出现 JAVA(另一种平台)
上不同手机型号需要分别设计的麻烦。 此外, BREW 还兼容其他语言, 包括 JAVA、
FLASH。 中国地质大学(武汉)学士学位论文 2005/06
第 6 页 共 45 页
2.2 BREW 的结构与环境
2.2.1 BREW 的体系结构
BREW 的 API(应用程序接口)和 SDK(软件开发工具)极大地简化了用 C、C++
和其它语言开发无线应用。BREW 的 API 以一组接口类的方式组织起来,每个类
定义提供某一特定服务的一组函数,使开发商无需了解设备的内部机理也能从
事无线应用的开发。
BREW Emulator 使开发人员可以测试无线应用在一系列仿真设备 Windows
环境下运行的状况,这样就免去了在真实设备中的测试。熟悉驱动图形界面环
境的开发商将会发现 BREWAPI 好学易用。事件处理、菜单、对话、资源、编辑、
基于文件的长期储存和记录导向型的数据库是 BREW 中标准的概念。而且,基于
Windows 的模拟环境使那些对 Windows 应用程序编写熟练的程序员可以特别轻
松地用 Visual C++去开发 BREW 应用。
由于 BREW API 可适用于多种设备,利用 BREW API 编写的程序可以轻松地
从一个无线设备移植到其他无线设备中。所以开发商编程一次,就可运行在多
种设备中。虽然不同设备由于显示尺寸不同可能要对程序进行微调,但大多种
这种细微的调整可以在 BREW Emulator 中轻易地测试出来。BREWAPI 可以支持
扩展名,设备厂商、运营商和开发商可以编写插件类来拓展 BREW 的功能。
2.2.2 BREW 的运行环境
BREW 的应用执行环境(AEE)是一个精巧的软件接口层。设备厂商将它集成
在各自的软件中,以支持 BREW API 和运行环境。在一个新终端设备中提供 AEE
要求设备厂商只要移植 AEE 即可,此外, BREW Emulator 中提供了一个 AEE 的
Windows 端口,所以 BREW Emulator 可以运行针对 Windows 的小程序。由于 AEE
占用的随机存储器和闪存极小,BREW 不但可以使高档机型锦上添花,而且在低
端主流机型中也能大显身手。
除了向应用提供 BREW API 服务,AEE 同时管理着应用程序的执行,及时响
应用户和一些紧急事件,如来电和短信呼入。比如说,一个正在运行的 BREW
应用当有来电呼入时,可以自动立即暂停;并在通话完毕之后,再自动恢复工
作。 中国地质大学(武汉)学士学位论文 2005/06
第 7 页 共 45 页
2.2.3 BREW 的分发环境
BDS 是一项具有突破性的技术,它使得终端用户可以利用手机或其他无线
设备以无线的方式下载应用。无线应用开发商可以根据用户购买应用的数量得
到相应的回报。
为了确保 BREW 应用安全下载,一个名为 True BREW 的独立测试流程可以确
保开发商提供的应用模式安全稳定地运行在终端上,而且同 BREW 平台兼容。支
持 BREW 的终端只能运行经过开发商、运营商和高通数字签名的应用。有些运营
商只提供经过 True BREW 测试的应用。
2.2.4 BREW 和硬件
BREW AEE 可以移植到使用 QUALCOMM MSM3100 和 CDMA 系列芯片的无线终
端。 BREW 还将支持其它制式终端的 AEE 移植。 下面介绍一下目前 QUALCOMM CDMA
芯片支持的一些高级功能,以及 BREW 是如何利用这些功能的:
·ARM 内核:BREW 利用 ARM 内核支持一系列操作系统和电话服务。支持 BREW
运行的终端都采用基于嵌入式 RISC 微处理器的 ARM 体系结构。
· Pure Voice :BREW 可以通过终端中的音响系统播放 QUALCOMM Pure Voice
格式优化的高级音乐文件。
·CMX:BREW 可以利用 ASIC 支持 CMX,在终端的音响系统中播放 MIDI 文件。
·蓝牙: 一种短程无线电技术, 支持数字设备短程无线互联。 未来版本的 BREW
将支持蓝牙连接。
·语音识别:未来版本的 BREW 将调用芯片组中的语音识别服务,支持相应的
应用。
2.3 BREW 的主要内容
BREW 运行时环境是一个较薄的软件接口层, 位于芯片系统软件和应用程序
间的无线设备上, 使最终用户可以无线下载程序并在启用 BREW 的设备上运行。
BREW 具有较高的闪存和 RAM 使用效率。它包括以下内容:
2.3.1 BREW 应用程序平台
完整的 BREW 解决方案始于无线设备上驻留的开放、标准应用程序执行平
台。 中国地质大学(武汉)学士学位论文 2005/06
第 8 页 共 45 页
瘦薄:BREW 并不仅仅是为 PC 或 PDA 开发的产品的缩减版本,它比其它应
用程序平台或成熟的操作系统小许多倍。
快速:BREW 平台正位于芯片系统软件之上,启用了快速 C/C++ 本地应用程
序,以及浏览器与基于 Java 技术和扩展的虚拟机(例如游戏引擎和音乐播放
器)的简易集成。
开放:除本地 C/C++ 以外,BREW 还支持其它多种语言,包括 Java、可扩
展标识语言 (XML)、 Flash 等执行环境。 而且, 由于它可以驻留在采用 Palm 等
任何移动操作系统 (OS) 的智能手机上, 因而可使用 BREW 发布系统 (BDS) 无
线下载为这些 OS 编写的应用程序, 并像 BREW 应用程序一样使之商品化。
可扩展: 第三方可以为 BREW 平台编写扩展, 从而向应用程序提供附加功能。
成本效益高:降低开发成本,并缩短设备制造商的产品面市时间。设备制造
商可以在开发应用程序和为不同型号产品配备应用程序方面花费很少的时间,
而将更多的时间投入产品设计。
安全:BREW 对基本的电话和无线网络运行提供保护。
2.3.2 BREW 移植包
BREW 平台所承诺的无限简化产品与服务的开发和制造, 其核心就是 BREW
移植包。它缩短了将 BREW 平台集成到新研制设备中的过程。
2.3.3 BREW SDK(软件开发包)
BREW SDK 由一整套工具和服务组成,使应用程序开发者能够为各种手
持设备快速、高效、经济地开发和配置新的应用程序。
BREW SDK 可使开发者使用标准工具在熟悉的环境中工作。 也就是说,可
以在无需知道芯片系统源代码及与设备制造商没有直接关系的前提下编写基于
BREW 的设备中使用的应用程序。
2.3.4 BREW 发布系统 (BDS)
BDS 使运营商可以轻松地将从开发者手中获得的应用程序投放到市场,并
协调结算和支付。
运营商可以根据需要调整 BDS, 包括管理他们自己的应用程序发布及定价、
选择第三方管理应用程序。 中国地质大学(武汉)学士学位论文 2005/06
第 9 页 共 45 页
2.3.5 应用程序类型
BREW 使用户可以仅以所需的应用程序来自定义手持设备。 用户只需按几
个按钮,即可从众多的应用程序中进行选择。
通信 - 即时通信、电子邮件、 铃声和其它互动消息传送
定位 - 映射、浏览、 交通和其它特定定位内容
效率工具 - 移动同步办公应用程序和实用工具,提高了个人效率
游戏 - 单个玩家和多个玩家间的互动游戏
移动商务 - 账户余额、零售、股票交易等金融交易。
娱乐 - 音乐、录像、幽默,甚至追踪某一事件
信息 - 航班跟踪、新闻、天气、 体育和其它日常信息 扩展 - 开发者可
以在应用程序中使用的强大的 BREW 平台第三方扩展
2.4 BREW 的用户端处理技术的分析
2.4.1 真正的实时处理
借助用户端处理特性,各种新型应用(如动作游戏)即可开发出来,因为借
助 BREW 平台用户能够将应用下载到电话之中并运行之。 即便是在电路交换网络
之中,应用也可以即刻启动,因为这些应用安装在电话之上--无需等待即将发
起的数据呼叫。
BREW 可以通过提供真正的实时处理功能扩展自己的优势,实现其他应用--
特别是那些基于语音的应用。
2.4.2 快速信息交互
借助用户端执行特性, 用户只需花费几秒钟即可将有关特定景点的旅游信息
数据库下载到自己的手持设备中,然后在数据库中进行搜索,快速寻找合适的
地图,这一切根据需要可以随时完成。与此同时,本地存储的信息还可用来增
强个性化定位服务的定位信息功 能。所有用户都可以享受快速响应这一优势,
而无需考虑网络的带宽问题。
BREW 可以同电话的基本通话功能紧密整合,增强用户端执行功能。开发人
员可以非常轻松地编写各种应用,充分利用 BREW 的通话管理功能,因此,当用
户接收呼叫或 SMS 消息时,应用可以自动暂停并在随后恢复运行。 中国地质大学(武汉)学士学位论文 2005/06
第 10 页 共 45 页
2.4.3 更加个性化的移动体验 --无线方式
最终用户可以利用多种应用以 及各种生活信息精确定制自己的电话,并根
据自己的意愿随时修改这些应用。用户可以下载所有能够提高工作效率的应用
(如财务计算器、股票行情跟踪应用以及新型联络信息数据库),实现手机的
个性化,与此同时,他们也可以下载各种娱乐应用以及个性化铃声。这些内容
都可以通过无线方式实现,无需电缆或者 PC 连接。
BREW 应用平台使得网络运营商可以通过无线方式安装、招回并升级应用。
即便是特定电话应用,用户也无需将手机拿到商店或者运营商那里接受服务。
2.4.4 最低的软硬件要求
BREW 平台精致小巧--仅占用大约 150K 的空 间--高效而功能强大,无需为
每种型号的电话配备独立的虚拟机 (VM)。如果运营商希望在一款手机上同时
采用 J2ME 以及 BREW 技术,仅需一台 VM,过一段时间他们即可利用多种 VM 功
能选项。目前,IBM 正在将自己的 Web Sphere 微环境(即以前众所周知的 J9)
移植到 BREW 中,HP 也在将在自己的 MICroChai 环境移植到 BREW 中。这为其他
公司的 VM 移植打开了大门。
中国地质大学(武汉)学士学位论文 2005/06
第 11 页 共 45 页
第三章 基于BREW软件开发基础
3.1 BREW 软件开发包
BREW 应用程序开发者最重要的工具是 BREW 软件开发包 (BREW SDK)。
BREW SDK 由一整套工具和服务组成,使应用程序开发者能够为各种手持设备快
速、高效、经济地开发和配置新的应用程序。下面将介绍 BREW SDK 中包含的
主要组件:
3.1.1 BREW MIF Edit
MIF 中包含每个模块类的唯一 ClassID,并指定导出哪些类供其它模块使
用。 MIF 中还包含每个小程序类的文本字符串,以及在可运行小程序菜单中代
表小程序的一个或多个图形图标。 MIF 中还包含其它可确定模块权限级别(可
被模块类调用的 BREW API 函数)的信息,以及模块可从其它 BREW 类接收到
的通知。
在 Emulator 上运行小程序时,每个模块都可以拥有多个 MIF,各代表被模
拟的每种设备色深。 由于 MIF 中包含图形图像,因此可以选择适用于每个设
备显示功能的图像,并保存在单独的 MIF 中。 Emulator 允许 MIF 目录的选择
独立于包含模块可执行文件的目录,以便在多个设备上模拟小程序的执行。
在 BREW 设备上,MIF 保存在包含每个模块目录的 BREW 文件夹下。 模块目录
的名称与 MIF 的前缀名称相同。
3.1.2 BREW Emulator
即 BREW 模拟器,可以用来模拟各种手持设备,并测试在 BREW 环境下开发
的小程序和类。对于手机设备案件的模拟输入,不仅可以通过单击 Emulator
中的按键图像区来完成,也可以通过单击相应的台式电脑键盘来模拟输入 。小
程序生成的屏幕输出显示在设备图像的屏幕区,用户不仅可以选择按照设备时
间的屏幕大小来查看应用程序和类, 而且可以在 Configurator 配置文件指定的
屏幕大小来查看。它主要用来测试应用。 中国地质大学(武汉)学士学位论文 2005/06
第 12 页 共 45 页
3.1.3 BREW Resource Edit
BREW 资源编辑器允许您创建应用程序中使用的对话框、字符串、二进制
以及对象。 您还可以使用资源编辑器创建控件,如:菜单、列表、日期选择器
以及计时器等。 如果创建的应用程序需要使用不同语言在各种无线设备上运
行,这些资源将十分有用。
3.1.4 BREW Device Configurator
可用于创建和配置Emulator使用的设备文件,然后通过 Emulator,在各种
设备上测试应用程序。用户可以使用 Configurator 创建和定义设备文件,由来
模拟小程序执行期间的设备行为。将设备文件载入之后,就可以使用安装有
Windows 操作系统的计算机模拟BREW 小程序在各种设备上的运行了。
3.2 基于 BREW系统的开发步骤
3.2.1.利用BREW SDK 和模拟器,在PC 上开发和测试
这一步是开发的主体部分,台式 PC 机上安装了 BREW SDK 以后,在 Visual
C++的环境下创建 BREW Application Wizard,利用 BREW MIF Edit 创建一个对
应的.mif 文件,并且在.c 文件中相应位置添加代码,编译通过后生成.dll 文
件
这样,BREW Emulator 就可以模拟手机来测试应用程序了。
3.2.2.利用交叉编译器生成.mod 文件
应用程序写好了,并且在模拟器上面测试后,在台式 PC 机上用 ARM 编译器
或 GCC 编译器编译应用程序,生成相应的.mod 文件
3.2.3.获取测试数字签名
每一个 BREW 应用都需要签名,其主要的目的是为了防止应用被篡改,签名
文件分为两种:测试签名和产品签名。测试签名的生成需要应用的名字、手机中国地质大学(武汉)学士学位论文 2005/06
第 13 页 共 45 页
的 ESN(Electronic Serial Number)或 RUIM ID 这些信息,它允许任何应用
在同一款手机上面运行,有效期为 90 天。产品签名是当应用通过测试之后,在
将其放到 UAM 之前所做的数字签名,它允许一个应用在任何手机上运行。需要
用到的工具是测试签名生成器。
3.2.4 按一定的目录形式,将文件上传到手机上
安装好 BREW Tool Suite后, 即可使用AppLoader 把与运用相关的所有文件
通过数据线从 PC机上传送至 BREW手机上。到这一步,一个完整的 BREW 应
用就算完成了。
中国地质大学(武汉)学士学位论文 2005/06
第 14 页 共 45 页
第四章 系统的结构设计
4.1 系统的产生背景
截止 2005 年 3 月,BREW 平台已经在全球 24 个国家的 46 个运营商的网
络上运行,全球基于 BREW 应用程序的下载数量已经超过 2.75 亿次。在维持
原有的客户资源有增无减的基础上,笔者认为电信运营商应该将无线增值业务
大力推向企业事业单位,实现无线增值业务的行业应用,比如手机移动办公。
只要能将无线增值业务普遍应用到企业的日常办公中,加之成熟的管理、良好
的客服态度,势必会有促进整个行业应用的发展。那个时候电信运营商的无线
增值业务将会拥有一大批固定的企业级的客户资源,业务收入也将会得到稳定
的、大幅度的提升。
基于以上背景,本章将介绍一个移动办公商用系统的开发,通过该系统,
可以利用移动终端查询实时的生活娱乐等信息、查询个人的位置信息,并进行
实时的信息交流。移动终端完成了大量的辅助工作,大大的满足了用户的信息
需求,同时各种信息都直接以文本和地图等方式显示,这种信息表现方式避免
了语言描述的不精确性和不持久性,丰富了信息交流的手段而且提高了效率。
4.2 设计目标
移动办公系统有着不同的应用领域,随着今后人们需求的增加,移动办
公的服务内容应该更全面、更合理。因此,移动办公系统应具有以下两个特
性:
4.2.1 功能可扩展性
除了当前城市向导、位置服务等应用以外,终端软件还可以添加其他应用的
功能模块,比如热点追踪,它包括 IT 信息、打折信息、热点推荐、手机商
情等
4.2.2 结构可扩展性
要增加新的模块当然需要硬件的支持。因此,整个系统的结构设计也应该可
以升级,以满足新增功能的需求。
中国地质大学(武汉)学士学位论文 2005/06
第 15 页 共 45 页
4.3 系统需求分析
4.3.1.软件界面需求
系统软件主界面是 9 个图形选项(如图 4.1 所示) ,用户通过导航键盘来
选择城市向导、位置服务、旅游信息、个性设置等,以便进一步搜索自己需要
的信息。
图 4.1 系统软件主界面
城市向导:饮食、娱乐、购物、理财、单位查找信息服务。
分别可以查到酒店的地址电话等、娱乐项目的地址电话价格、
购物场所地址电话价格等
位置服务:显示地图、通知朋友
GPSONE 定位,显示自己所在位置信息(图片文字)
交通信息:公交线路查询、城市交通查询、车次信息查询、火车换乘
查询、航班查询
旅游信息:旅游景点、姓氏寻根、地名查询
个性设置:设置城市、我的收藏
中国地质大学(武汉)学士学位论文 2005/06
第 16 页 共 45 页
4.3.2.软件的 UI 设计
UI(User Interface,用户接口)是人机之间交互的接口。一个好的交互界面
能够使用户快速上手,便携操作,体验到效率。这里采用的 UI 是一些窗口、
LIST 菜单、ICON 菜单,SOFTKEY 菜单,按钮、文本输入框,每一个界面下
都有“确定” “退出”选项,部分界面还有使用说明。下面罗列了系统中使用到
的用于显示的接口和控件接口:
(1)用于显示的接口
IDisplay
IImage
IBitmap
IFont
(2)控件接口
IMenuCtl
ITextCtl
IDialog
4.3.3.软件的 I/O 设计
在信息下载到移动终端时需要用到存储技术,BREW中主要分为文件 I/O
和数据库技术两种,本系统采用前者。
在城市向导、位置服务、旅游信息服务中,读取资源时用到了文件存储技
术,主要是一些文本信息、图片信息等资源
4.3.4.资源需求设计
本系统相当于一个无线数据增值业务, 合法用户首先在个性设置中设置自
己所在的城市, 这样通过无线通信网络和 INTERNET, 连接到移动办公服务器,
手机会自动下载城市向导、旅游信息、交通信息等信息到本机的数据库中,以
供用户及时快速查询,下载完毕后进行相应的业务处理。对于定位信息服务则
是实时的查询,通过定位模块发送定位请求,经过CDMA网络中的定位平台得
到定位数据,然后位置数据在发送到固定网络的应用服务器组,经过业务服务
器、位置服务器进行相应的业务处理,最后将结果返回到终端。
注:为了系统开发方便,本系统直接将信息资源放在了系统中。 中国地质大学(武汉)学士学位论文 2005/06
第 17 页 共 45 页
4.3.4.1 城市向导、交通信息、旅游信息资源
以上三部分的设计大致相同,步骤如下:
1. 首先用户在界面下进入个性设置,设置当前所在城市,即发送服务请求;
2. CDMA 网络响应服务请求;
3. 手机终端将城市名和业务种类发送给业务服务器;
4. 业务服务器根据用户提交的城市名和业务种类向城市向导服务器提交信
息服务请求;
5. 城市向导服务器根据城市名和业务种类,将结果返回给业务服务器;
6. 业务服务器将结果发送给指定的用户终端。
7. 用户终端将结果放入本机数据库中,可以根据需要随时查询;
4.3.4.2 位置服务资源
图 4.2
如图 4.2 所示:
定位服务的主要步骤如下:
1. 定位手机发送定位请求;
2. 定位响应,通过 CDMA 网络定位平台计算出位置,响应定位;
3. 用户手机向业务服务器发送定位数据,主要包括经度和纬度;
4. 业务服务器根据用户提交的经纬度向位置服务器提交位置请求;
5. 位置服务器根据经纬度算出用户当前位置地图,将结果返回给业务服务
器;
6. 业务服务器将结果发送给指定的用户终端。 中国地质大学(武汉)学士学位论文 2005/06
第 18 页 共 45 页
4.4 基本流程图和状态转移表
图 4.3 基本的流程图
按 键 使用位置 功 能
AVK_END 任何屏幕 直接退出程序
AVK_UP 所有菜单界面 向上滚动一行
AVK_DOWN 所有菜单界面 向下滚动一行
AVK_LEFT 主图形菜单界面 向左滚动一行
AVK_RIGHT 主图形菜单界面 向右滚动一行
AVK_SOFT1 所有菜单界面 进入当前激活项
AVK_SOFT2 所有界面 返回主界面
AVK_CLEAR 所有菜单界面 返回主界面
AVK_SELECT 所有菜单界面 进入当前激活项
表 4.1 状态转移表
用户界面
城市手册 旅游信息 交通信息 个性设置
选 择
位置服务
本机数据库 业务服务器
结果显示
信息
数据
业务服务器 中国地质大学(武汉)学士学位论文 2005/06
第 19 页 共 45 页
4.5 系统模块设计
程序以界面视图为单位来组织。所以,本系统共有 6 个主要界面:系统界
面、城市手册界面、交通信息界面、旅游信息界面、位置信息界面、个性设置
界面。笔者共设计了 4 个功能模块(菜单模块、消息处理模块、图像模块、定
位模块)来处理与这 6 个界面相关的数据和界面更新。另外还需要设计一个驱
动模块来管理这些功能模块。程序运行时,有且只有一个模块处于激活状态,
处于激活状态的这个模块负责处理数据和界面的更新,需要节目切换时,由驱
动模块关闭当前活动的功能模块然后打开新的功能模块。模块关系如图所示。
图 4.4 系统模块图
驱动模块
菜单模块
消息处理
模块
图像模块
定位模块
中国地质大学(武汉)学士学位论文 2005/06
第 20 页 共 45 页
第五章 系统详细设计与实现
依据系统的结构设计、模块设计,系统具体设计如下:
5.1. 数据类
数据类中声明了需要用到的所有数据类型
typedef struct _MOApp
{
AEEApplet a;
IMenuCtl * m_pISoftKey; //软键
IMenuCtl * m_pIconMenu; //图形菜单
ITextCtl * m_pIText; //文本
IMenuCtl * m_pIMenu; //菜单
IImageCtl * m_pImage; //图像
AEERect m_rc;
IDisplay * m_pIDisplay;
int m_nLineHeight;
IBitmap * m_pBitmap; //原位图指针
IBitmap * m_pBitmap_OBJ;//目标位图指针
IBitmap * m_pBitmap_OBJ_OBJ;//第二个目标位图
IBitmap * pbmScreen;//屏幕显示指针
NativeColor pColor; //象素点的颜色
uint16 i;//循环变量,要足够大,即 65536>原位图文件的长和宽
uint16 j;
AEEBitmapInfo bi;
AEEDeviceInfo m_dInfo;
}CMOApp; 中国地质大学(武汉)学士学位论文 2005/06
第 21 页 共 45 页
5.2.功能模块去驱动模块之间的接口
驱动模块提供 SetActive()函数接口,用于进行功能模块的切换。模块切换
的发起者是当前处于激活状态的功能模块,用 IMENUCTL_IsActive()来判断。
功能模块提供以下函数接口供驱动模块调用:
MobileOffice_InitAppData() 用于初始化功能模块数据
BuildMainMenu() 用于创建主界面菜单
MobileOfficeUsage () 用于创建功能界面菜单
5.3.驱动模块
首先调用 AEEClsCreateInstance()注册实际的数据类 CAndyApp、消息处
理函数 MobileOffice_HandleEvent()、和资源初始化函数 MobileOffice_
InitApp 资源释放函数 MobileOffice_FreeAppData()。驱动模块
MobileOffice_HandleEvent()接收所有的消息。除了 EVT_APP_START 和
EVT_APP_STOP 消息, 驱动模块都交给当前激活的功能模块处理。 EVT_APP_START
表示程序启动,此时创建了各个功能菜单。并且建立了系统主菜单。
static boolean MobileOffice_HandleEvent(IApplet * pi, AEEEvent eCode,
uint16 wParam, uint32 dwParam)
{
CMOApp *pMe=(CMOApp*)pi;
// IShell * pIShell;
switch (eCode)
{
Case EVT_APP_START://程序开始
if(ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_ICONVIEWCTL,
(void **)&pMe->m_pIconMenu) != SUCCESS)
{
return FALSE;
}
……创建所有组件
BuildMainMenu(pMe);// 创建主菜单
return(TRUE);
case EVT_APP_STOP:// 程序终止
return TRUE;
case EVT_KEY: 中国地质大学(武汉)学士学位论文 2005/06
第 22 页 共 45 页
MobileOffice_SetActive (pMe,eCode,wParam,dwParam);
return(TRUE);
case EVT_COMMAND:
switch(wParam)
{ ……(详细代码见附件)
}
5.4.菜单模块
菜单模块用于对菜单进行添加、删除选项,本系统中用到了较多的菜单控件。
笔者采用的是系统提供的菜单 API。
MobileOfficeUsage (pMe,eCode,wParam,dwParam)
{
switch(wParam)
{
case USAGE_MENU_CITY:
……
case IDS_MENU_MFRIEND:
……
case USAGE_MENU_POSITION:
……
case USAGE_MENU_POP:
……
case USAGE_MENU_TRAFFIC:
……
case USAGE_MENU_TRAVEL:
……
case USAGE_MENU_CONFIG:
……
case USAGE_MENU_HELP:
……
case USAGE_MENU_QUIT:
……
default:
break; 中国地质大学(武汉)学士学位论文 2005/06
第 23 页 共 45 页
}
return TRUE;
}……(详细代码见附件)
}
5.5.按键消息处理模块
按键消息处理模块是比较核心的模块。对于手机的任何按键事件,系统需要做
出相应的反应。一旦检测到按下 select 键,那么就建立机执行被标记为当前选
项的功能。比如触发菜单、触发读取文件、触发创建文本框等等。该系统中,
大部分的按键事件处理由 MobileOffice_SetActive ()完成
static void MobileOffice_SetActive (CAndyApp * pMe,AEEEvent eCode,
uint16 wParam, uint32 dwParam)
{
AEERect *rect;
char* szBuf;
if(pMe->m_pIconMenu && IMENUCTL_IsActive (pMe->m_pIconMenu))
{
return IMENUCTL_HandleEvent(pMe->m_pIconMenu, EVT_KEY, wParam,
0);
}
else if(pMe->m_pIMenu && IMENUCTL_IsActive (pMe->m_pIMenu))
{
uint16 reet=IMENUCTL_GetSel(pMe->m_pIMenu);
switch(wParam)
{
case AVK_SOFT1:
case AVK_SELECT:
{
if(reet == USAGE_CITY_YINSHI)
{……(详细代码见附件)
}
5.6.图像模块
系统提供了 3 种图像接口----IGraphics、IImage 和 IBitmap, IImage 可用于中国地质大学(武汉)学士学位论文 2005/06
第 24 页 共 45 页
在屏幕上绘制位图图像和显示动画位图,该接口支持 Windows 位图(BMP)格式
以及一种特定设备专有的原位图格式(Native Bitmap Format) ;IBitmap 是一
个用于操作位图的接口,可以用来进行与位图相关的操作。在本系统中,大部
分的信息都是靠图片、文本的形式表现的,所以用到了这些接口。
1.显示图片信息
static boolean MobileOffice_Getmapinfo(CAndyApp * pMe, const char *
pszFile)
{
……
pi = ISHELL_LoadImage(pMe->a.m_pIShell,"map information.bmp"); //读取
从服务器获得的图片信息
if(pi)
{ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_IMAGECTL, (void
**)(&pvc));
if(pvc)
{
设置区域;
IIMAGECTL_SetProperties(pvc,CP_BORDER);// 指示控件绘制边
框...
…………
IIMAGECTL_Redraw(pvc); // 指示控件重绘...
}
IIMAGE_Release(pi);
}
}
2.对图片进行放大、缩小操作
对图像的放大、缩小操作原理是:对位图进行采样。如果缩放率是 2:1,则采
样的方法是隔一个像素点采样一次。同样道理,要是目标图像是原图像的 30%、
70%,就每 10 个像素里采样 3 次、7 次。
对于 2 维图片,首先对 X 轴方向采样,采样完毕后,再对 Y 轴采样。
以下是图片操作函数,通过设置 sampleX 、sampleY 值来实现扩\缩操作:
static int Bitmap_sampling(CAndyApp * pMe,uint16 sampleX, uint16
sampleY)
{
uint16 new_x; 中国地质大学(武汉)学士学位论文 2005/06
第 25 页 共 45 页
uint16 new_y;
int nErr;
AECHAR fmt[]={'%','d',0};
new_x=0;
new_y=0;
//创建目标位图的兼容位图,对 X 轴按照要求变换,而 Y 坐标不变
CHECK_ERROR(IBITMAP_CreateCompatibleBitmap(pMe->pbmScreen,
&pMe->m_pBitmap_OBJ, (uint16)((uint16)(pMe->bi.cx)*sampleX/100),
(uint16)((uint16)pMe->bi.cy)));
//对 X 轴按照要求变换
for(pMe->j=0;pMe->j<=(uint16)pMe->bi.cy;pMe->j++)//Y 轴不变
switch(sampleX) {
case 10://采样率为 1/10,每 10 个点采样一个点
case 20://采样率为 20/100,每 5 个点采样一个点
case 30://采样率为 30/100,每 3 个点采样一个点
case 50://采样率为 50/100,每 2 个点采样一个点
for(pMe->i=0;pMe->i<=(uint16)pMe->bi.cx;pMe->i=pMe->i+100/sample
X){//100/sampleX
//得到象素点
{ IBITMAP_GetPixel(pMe->m_pBitmap,
pMe->i,pMe->j, &pMe->pColor );
//写到新的位图中
IBITMAP_DrawPixel(pMe->m_pBitmap_OBJ,new_x++,new_y,pMe->pColor,A
EE_RO_COPY);
}
}
new_y++;
new_x=0;
break;
……(详细代码见附件)
}
中国地质大学(武汉)学士学位论文 2005/06
第 26 页 共 45 页
5.7 定位模块
5.7.1.定位请求
定位请求中首先要取得当前定位请求类型以及当前定位时间。 为提高效率,
每次定位结果以及定位时间都保留在一个缓存中,每当有新的请求命令时,首
先检查缓存中的上一次定位时间和当前定位时间差值, 如果小于某一个设定值,
则假定本次定位请求和上次请求是同一个定位请求或被定位者的位置在这段时
间内很可能没有产生显著变化,系统直接把缓冲的数据发回给定位请求者,否
则注册定位回调函数,进入处理。
图 5.1 定位算法
Static void PosititonRequest()
{
KeepPositionType();//保存定位类型
Time=GETTIMESECONDS();//获取当前定位时间
If(time>ValidPositionTime)
{//如果当前时间超过了上次定位的有效时间
当前定位时间
<有效定位时
上次定位有效 发送请求
提示定位
失败
获得定位请求类型、
定位时间
注册定位回调函数
注册成功
设置定位超时处理
显示正在连接网络
允许被定位
发送定位
失败数据
包
是
否
是 是
失败
成功 中国地质大学(武汉)学士学位论文 2005/06
第 27 页 共 45 页
if(!GetGPSPosition(pMe->m_pPosDeter))//注册回调函数
{//如果注册回调函数失败
if(m_nPosType==同意被定位请求)//如果是同意被定位请求,则发送定位
失败数据包
{
GetPosition(……,定位失败标志,……) ;
else//否则直接显示定位失败
{
RedrawPopWin(“提示,定位失败”);
}
else//如果注册回调函数成功,则显示正在连接 GPS 网络
{
RedrawPopWin(“正在连接 GPS 网络”);
打开定位超时处理开关;
}
}
else{//如果上次定位仍然有效,则直接用上次的坐标发送请求
GetPosition(……);
}
}
}
5.7.2.定位回调函数
定位是一个异步处理过程,通过定位回调函数可以获得每次的定位结果,
并将定位结果保存在数据结构 AEEGPSInfo 中。
程序首先得到经度、纬度等位置参数,清除定位超时标志。然后判断定位
是否真正成功。这可以通过经度纬度是否都为 0 来判断。如果失败,则提示本
次定位失败。如果成功,则保存本次定位的时间,然后向服务器发送刚刚得到
的位置参数,请求得到地图数据以便在终端显示。
Void GetPosCallBack(viod*pUser)
{
GPS 查找完成,超时=FALSE;
从 数据结构 AEEGPSInfo 中获得经度纬度;
if(定位不成功)
{//提示移动用户定位失败
RedrawPopWin(“提示移动用户定位失败”); 中国地质大学(武汉)学士学位论文 2005/06
第 28 页 共 45 页
Return:
}
KeepValidateTime();//记录下次有效定位时间
//向服务器发送刚刚得到的数据,请求得到地图和地址数据
GetPosition(指向通信结构指针;
自己的 ID;
……)
}
}
5.8 系统实现心得与体会
本系统的设计与实现涉及到 Microsoft Visual C++ 6.0 编程环境,笔者在几个
月的探索与研究中总结了 Microsoft Visual C++ 6.0 编程环境下,开发 BREW
应用的一些使用技巧和捷径,这些应该对大家来说有一定的帮助
1. 执行 NULL 指针检查
在以下两种情况下需执行检查:
• 创建 BREW 接口实例时必须检查 NULL 指针。 如果指针有误,则该接口将
无法使用。
• 检查 BREW 方法或已分配内存所传递和返回的所有指针,以确保它们的有
效性。 无效指针应使用异常处理机制进行处理。
2. 避免堆栈溢出。
不要将大数组放在堆栈上。 不要在函数内将大数组或变量声明为本地变量,因
为 BREW 环境可用的堆栈大小十分有限。 如果需要大量内存(例如,大于 256
字节),则使用动态内存分配操作符,例如 MALLOC 或 IHeap。
如果分配处于递归例程中,则动态分配缓冲区。 如果调用堆栈中的函数较深,
则监控之前大堆栈缓冲区的堆栈。
3.不要编写紧凑循环
使用紧凑循环会导致目标设备自动重置。 因此,不要编写需要花费大量时间处
理应用程序中单个事件的紧凑循环。 这样可以防止将其它事件传递给应用程
序,从而避免设备重置。
收到事件时,应用程序将进行所需处理,然后从该事件返回, 使得其它事件可
以发送到该应用程序。
4. 尽可能多的使用资源
使用资源存储特定语言的字符串、对话框和位图。 这有助于本地化应用程序,
将它从一种语言的目标设备移至另一种语言的目标设备。 不要在源文件中硬编
码这些类型的信息。 中国地质大学(武汉)学士学位论文 2005/06
第 29 页 共 45 页
5. 不要忘记清除内存
由于目标移动设备上的可用内存十分有限,因此必须释放未使用的内存。 在以
下两种情况下需释放内存:
• 必须释放所创建对象的所有实例。
• 应用程序终止时,必须释放所有动态内存(所有已分配内存)。
6.不使用全局或静态变量
BREW 结构不支持全局或静态变量, 因为动态下载的应用程序无法处理这些数据
类型。 此外,使用全局或静态变量可能导致连接器出现目标错误。 始终将持
久数据存储在小程序结构中。
5.9 本章小结
本章的内容是课题的核心,在前面一章系统的结构设计的基础之上,详细
介绍了系统中功能模块的实现方法。并构建了整个系统框架。最后,对于系统
实现过程中遇到的问题做出了总结。
中国地质大学(武汉)学士学位论文 2005/06
第 30 页 共 45 页
第六章 系统测试与分析
完成了编码,接下来的重要一步就是功能测试了。测试的目的在于检查需求
分析和代码详细设计两个阶段所预期实现的功能是否都已经正确实现。
6.1 测试工具
高通公司 BREW Emulator 2.0
6.2.测试选项
一个最简单的测试包括某些界面预期的按键功能列表(表 4.1),此外还要测
试需求分析中的各个功能选项。
6.3.测试结果
6.3.1.主图形菜单界面
通过导航键盘上、下、左、右键可以使活动焦点移动到各个选项上,按选择
键(AVK_SELECT)可以激活当前选项,结束键(红色键)退出程序。 中国地质大学(武汉)学士学位论文 2005/06
第 31 页 共 45 页
6.3.2.“城市手册”界面,测试结果 (图 6.1-6.6)
图 6.1-6.3
图 6.4-6.6 中国地质大学(武汉)学士学位论文 2005/06
第 32 页 共 45 页
6.3.3.“我的位置”界面,测试结果(图 6.7-6.14)
图 6.7-6.9
中国地质大学(武汉)学士学位论文 2005/06
第 33 页 共 45 页
图 6.10-6.14
6.3.4.“交通信息”界面,测试结果(图 6.15-6.24)
中国地质大学(武汉)学士学位论文 2005/06
第 34 页 共 45 页
图 6.15-6.24 中国地质大学(武汉)学士学位论文 2005/06
第 35 页 共 45 页
6.3.5.“个性设置”界面,测试结果(图 6.25-6.27)
图 6.25-6.27
6.3.6.“使用指南”界面,测试结果(图 6.28-6.29)
图 6.28-6.29
中国地质大学(武汉)学士学位论文 2005/06
第 36 页 共 45 页
6.4 本章小结
本章主要通过工具对系统终端软件进行了测试。29 个图片完成了系统的功能
演示。从测试结果来看本终端软件系统基本达到了预期的设计目的,当然还有
许多需要改进的地方,比如在系统美工方面、操作人性化方面,数据管理方面
有待进一步研究。
中国地质大学(武汉)学士学位论文 2005/06
第 37 页 共 45 页
第七章 总结
移动办公系统是现在手机无线数据通信中重要的一项增值业务,它把移动
终端、移动网络、互联网合为一体,用户可以通过在移动终端的软件界面上进
行操作,通过网络通信和移动终端数据存储技术,来达到信息查询、工作处理
等目的。
传统的移动办公是采用的是设备是便携电脑,和移动电话比起来,虽然它功
能比较强大,但是它价格昂贵,必须要有网线和电源,而且所谓“移动办公”
只是相对的,在某些领域实在不“便携” 。手机移动办公正好弥补了这写缺点,
越来越受到人们的重视,逐渐在一些领域得到应用。
按照课题的进度计划,笔者首先熟悉工程的编程环境,然后在一个月左右的
时间理解 BREW 手机开发原理和使用相应的平台开发工具, 最后花了近两个月时
间开发基于 BREW 的移动办公查询系统,并完成了毕业论文。系统软件的设计和
实现过程中,笔者积累了一些手机应用系统开发的经验,并且在移动办公领域
做了一些技术性尝试。利用 C\C++开发,大大提高了系统在移动终端上的运行
效率和可移植性。在实际应用中,本研究开发的软件经过编译后可以在多款基
于 BREW 技术的手机上面运行,如Sharp_Z-800,LG8380,TCL1699 等等。
目前, 手机移动办公刚刚开始起步, 应用类型比较单一, 许多问题有待解决。
比如终端的内存大小问题,以后信息量很大(都存放在本地)是否放的下,这
个需要手机制造商解决;安全问题, ;系统效率问题,如何提高响应时间;系统
集成问题,如何充分利用资源让它为系统服务等等。这些问题需要我们在今后
的工作中进一步解决、完善。同时也为我们今后的研究与开发工作指明了方向。
中国地质大学(武汉)学士学位论文 2005/06
第 38 页 共 45 页
感谢
时光飞逝,在中国地质大学(武汉)的四年中,我学到了不少知识,在此,
我谨向所有给我关心和帮助的良师益友表示衷心的感谢, 并致以最真诚的祝福!
首先我要感谢尊敬的刘丹老师,承蒙恩师的严格要求、系统安排与悉心指
导,使我顺利地完成了毕业设计以及毕业论文,他渊博的学识和严谨的治学态
度深深地激励着我,是我学习的楷模。
其次我要感谢蒋文鹃、童德等同学,系统开发中我们共同探讨,他们给我
提了一些很好的建议,感谢他们的无私帮助!
感谢在中国 BREW 手机论坛上那些朋友们!虽然我不知道你们的名字,但是
我要好好谢谢你们给我的细心帮助!
此外,对于曾经教导过我的老师们,在这里一并感谢。
尤其感谢我尊敬的父母、家人,虽然他们不在身边,但是他们给予了我全
力的支持、爱护和无私的奉献,使我顺利地完成学业。在此我深深地祝福他们!
愿以此拙做,献给所有关心帮助过我的人!
中国地质大学(武汉)学士学位论文 2005/06
第 39 页 共 45 页
附录
主程序清单(完整请参考光盘) :
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h"
#include "AEEMenu.h"
#include "AEEText.h"
#include "AEEStdLib.h"
#include "AEEFile.h" // AEE File Manager Services
#include "AEEMedia.h" // AEE Multimedia Services
#include "AEEImageCtl.h" // AEE ImageCtl Services
#include "AEEImage.h"
#include "AEE.h"
#include "AEEPosDet.h"
#include "MobileOffice.bid"
#include "system_res.h"
#define USAGE_BUS_LINE 1001
#define USAGE_CITY_TRFFIC 1002
#define USAGE_BUS_INF 1003
#define USAGE_TRAIN 1004
#define USAGE_AIR 1005
#define MENU_OK 1006
#define MENU_CANCEL 1007
#define USAGE_BUS_LINE_1 1008
#define USAGE_BUS_LINE_2 1009
#define USAGE_CITY_YINSHI 1010
#define USAGE_CITY_YULE 1011
#define USAGE_CITY_GOUWU 1012
#define USAGE_CITY_LICAI 1013
#define USAGE_CITY_DWCZ 1014
#define USAGE_RETURN_TO_MAIN_MENU 1015
#define USAGE_CITY_CANCEL 1016
#define USAGE_CITY_OK 1017
#define USAGE_YINSHI_ZC 1018 中国地质大学(武汉)学士学位论文 2005/06
第 40 页 共 45 页
#define USAGE_YINSHI_WC 1019
#define USAGE_YINSHI_KC 1020
#define USAGE_YINSHI_XC 1021
#define USAGE_YINSHI_HG 1022
#define USAGE_DWCZ_OK 1023
#define USAGE_DWCZ_CANCEL 1024
#define USAGE_POSITION_MYPOSITION 1025
#define USAGE_POSITION_ADD 1026
#define USAGE_POSITION_HELP 1027
#define USAGE_MENU_CITY 1028
#define USAGE_MENU_MFRIEND 1029
#define USAGE_MENU_POSITION 1030
#define USAGE_MENU_POP 1031
#define USAGE_MENU_TRAFFIC