您所在位置: &
 &  & 
BREW开发技术文档.doc107页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
??????????
??????????
QUALCOMM平台BUIW开发文档
编写:林 树 春 前言
从268项目开始,到现在2938基本开发完成,在开发过程中遇到了很多问题,我们都非常艰难地走过来了;因此我们把过去开发中产生的问题进行总结,并将错误产生的原因显示给后来的开发者,将是这文档的主要目的。
我们从开发者的角度,把过去开发过程中产生的问题和BUG,都罗列出来,并且把一些代码和示例也列出来,大家一起参考;文档中可能列出了我们曾经不够完美的代码和一些开发的规范。
在文档中我更多注意的是开发过程中,提到开发人员的意识问题,以及时常需要关注的问题和要点。对很多普通的问题,文档中都不仔细提及这些问题。
如文档中内容需要修改或者存在缺陷,可直接联系(林树春,邮件 ),我将在继续修改和维护该文档。
认识手机的的存储区间
手机系统的组成
手机存储介质一般分为3块,它们分别功能是存储启动文件和系统BIN需要的NOR、系统和程序运行需要的内存空间RAM、系统配置文件及普通文件和作为USB使用需要的NAND,前2个存储区是必须的,有些手机可能没有NAND这块存储区;这些区块的主要作用,在下面对它们进行简要的说明:
该块区域保存了系统启动必须需要的数据,大小一般为32M或者64M,其中又分为3部分存储数据(如下图);该块系统数据区主要特点是该区的数据不会断电而丢失、可以直接启动应用以及读快写慢的特点(写的速度一般为为NAND的七分之一到十分之一之间,这也说明了为什么CP828下载32M的BIN文件只需要53秒左右,而CP268却需要7分钟的原因),这里以32M和64M说明,结构如下图(图中第2区块和第3区块可以根据实际情况做相应调整):
内存区和WINDOWS的内存
正在加载中,请稍后...目录????无线二进制执行环境(Binary Runtime Environment for Wireless,简称BREW)为2001年美国高通(Qualcomm)公司所设计提出的3G系统最佳平台解决方案,可支援CDMA One/CDMA2000/GSM/GPRS/UMTS/WCDMA,技术上横跨电信、软件开发、手机厂等三大领域,在编程语言支援方面,BREW可让使用C/C++语言开发的应用拥有更好的运行效能,同时它还支援其他开发语言,包括Java、XML和Flash等。目前有美国Verizon Wireless、中国联通、日本KDDI、韩国KTF、泰国Hutchison cat、澳大利亚Telstra、墨西哥Iusacell、印度Tata、巴西VIVO、阿根廷Movicom、以色列Pelephone、委内瑞拉的Telcel、乌拉圭的Movicom……等数十家电信业者采用。
BREW的执行环境称为BREW AEE(Application Execution Environment),这是一个中间层的应用,具有高效、低成本、可扩展性。一般所见到的BREW例子都是用C写的,不过BREW开发是完全支持C++语言的,2003年宣布支援Java语言[1]。2002年7月份于San Diego举行的BREW开发商大会上,IBM和Insignia展示了BREW环境下的J***A virtual machine(JVM)。HP也将其MicrochaiVM平台转向了BREW。IBM将在WebSphere Studio Device Developer产品中提供一个BREW开发套件。
BREW SDK至今已发行多套版本,1.0, 1.1, 2.0, 2.1, 3.1, 4.0.4,并且向下相容(backward compatible),目前最新的版本为4.0.4版。SDK是BREW所提供的是一组API函式集合,OEM开发厂商可以利用BREW建立用于无线装置(现是无线***)的应用软件。
对手机领域来说,BREW是一种轻型客户端(thin client),大约占用150K左右的内存空间,介于应用程式软件和底层系统软件(Application Specific Integrated Circuit,ASIC)之间。因此,开发厂商可以于不相关装置电路(device's chipset)或无线接口(air interface)的情况下,独立开发BREW应用程式。CDMA(Code Division Multiple Access)chipsets是QUALCOMM公司的专利(specialty),但是BREW一样可以执行在使用其他无线接口标准的手机上。
BREW SDK是免费提供的,但开发者仍须***Microsoft Visual C++ 6.0或其后续版本Visual C++.NET,方可使用由SDK提供的BREW Simulator来开发和测试应用程式。BREW Simulator是一支Windows程式,可以类比***上的AEE(Application Execution Environment)。应用程式可以DLL的形式执行于BREW Simulator中。因为DLL只能用于Windows平台,BREW Simulator可以执行这个DLL。目前市面上的手机大部分采用ARM kernel,非关于DLL档。
BREW的应用程式执行环境(AEE)是一个精巧的软件接口层。设备厂商将它集成在各自的软件中,以支援BREW API和执行环境。在一个新终端设备中提供AEE要求设备厂商只要移植AEE即可。此外,BREW Emulator中提供了一个AEE的Windows port,所以BREW Emulator可以执行针对Windows的小程式。由于AEE占用的随机内存和快闪存储器极小,适用于低端(low end)主流机型。
除了向应用程式提供BREW API服务,AEE同时管理著应用程式的执行,及时回应用户和一些紧急事件,比如说,一个正在执行的BREW应用当有来电呼入时,可以自动立即暂停(suspend);并在通话完毕之后,再自动恢复(resume)工作。
在BREW环境中,Module是基本的组织单位。发展一个BREW 应用程式可以从三个部份来解读,Module, Applet,以及Extension。一个Module可以包含一个以上的Applet,也可以包含一个以上的Extension,如下图所示,Module A拥有一个Applet A, Applet A再引用Extension X;而Module X仅拥有一个Extension;至于Module B则拥有两个Applets,以及一个Extension。有些Module是出厂时的code space(OEM Module image),也有Module是通过下载方式(download)储存于档案系统;这些Module依性质可区分为静态(static)和动态(dynamic),主要包括:dynamic Module(Applet),static Module(Applet)和dynamic extension class(Module)。
?BREW的优点
下列是 BREW 与 J2ME的比较。J2ME 有绝对的实力来对抗 BREW,从游戏软件的开发角度来看,BREW有许多的优点。
The BREW API 在支援***上远超过 J2ME API。
API较J2ME简洁有力。
图形戏法更容易,BREW 2.0 可以直接存取屏幕缓冲区。
J2ME phones 经常有二进制码大小的限制 (128KB is common)。BREW目前无此限制。
BREW是更底层的技术,加上和CDMA 的完美结合,使BREW拥有了更快的反应速度。
BREW 应用程式可以是面向对象程式设计(Object-oriented programming)。在 J2ME 里过多的类别会造成档案大小的负担,一般被鼓励以C语言的撰写方式。此外,由于非原始状态的型别(non-primitive types)使得J2ME 的阵列看起来更像类别(classes)。基于这个理由,J2ME仍常使用原始型态(primitive types)的平行阵列。
?BREW的缺点
相较于J2ME之下:
在J2ME,来源码跟资源默认是被压缩的。而BREW的码是不被压缩的。
J2ME 拥有较受欢迎的IDE开发平台或元件,如Eclipse 以及 Netbeans,BREW则否,目前仅能Add-in在Visual C++上操作。
目前大多数的使用者会选择二者兼用,或只用J2ME. J2ME 提供较低廉的成本(无测试成本)。此外,J2ME 在欧洲广泛被使用,BREW 雄霸美国与日本市场。即使在美国,J2ME phones 的市场仍较大。
BREW 模拟器(BREW Emulator):开发人员可以测试无线应用程式在一系列仿真设备Windows环境下运行的状况。
BREW MIF编辑器(BREW MIF Editor):应用模组的讯息档(.mif)必须与该模组的dll文件同名。可以生成一临时class id ,等到正式完成时必须向高通申请一正式id。每一个Module都需要有自我标识的MIF档,从BREW 3.1开始已经强制如此,静态(static)Module也需要有相应的MIF。而在BREW3.1之前,对于静态Module是没有单独的MIF档的,但有一个AEEAppInfo的结构体来表示Module的资讯,里面主要包括clsid,app type等资讯,每个静态Module都需要有一个实例化的AEEAppInfo结构体,BREW从此结构中获得必要的Module资讯。
BREW资源编辑器(BREW Resource Editor):用于创建应用程序的资源,包括字串、图档等。编译时将bri档转成bar档。
BREW SDK版本1.0 不支持静音插入。BREW 1.0 中,当剩余使用次数为0 时,用户将无法启动应用程式(Applet)。
使用 AEESoundTone AEE_TONE_SILENCE 插入一段静音。BREW 1.0、1.1 和2.0 版本不支持播放W*** 档。BREW 1.1 以上版本提供的 PureVoice Convertor Utility Tool 可以将 .W***档转成 .QCP。
不对应使用QVGA液晶的装置。
QVGA液晶の端末に??。デ?タフォルダやカメラ机能との连携も可能になった。
BREW Extensionという机能が追加された。ネットワ?クを通して必要なプログラムが自动的にダウンロ?ドされる机能である。例:マスコットカプセルエンジン。このExtensionにより3D描画が可能となる。
支援可插式储存媒体(USB),并能让使用者更容易于将支援BREW的手机连接到键盘及个人电脑等装置的序列接口(Serial Interface),用来读取音乐播放档或相片档,可提升移动***的多媒体功能。关于UI方面全新的BREW UI Toolkit(BUIT, BUIW)推出。
高通于加州圣地牙哥举行的BREW2004开发者大会上发布,新版本提出UiOne的构想,扩展了对手机用户UI的开发支持,如Menu Control、E-Mail等。
BREW SDK 4.0.4
目前最新版本。为OME厂商和第三方开发者提供一种环境去开发运行BREW 4.0.4上运行的设备和程序。这个版本的SDK具有一种新的对于通话记录、信息、日历、和***本以及BREW 4.0.3所有特性的同步接口。
如果您认为本词条还有待完善,需要补充新内容或修改错误内容,
BREW相关新闻
BREW相关下载
BREW相关技术应用
Copyright (C) ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司
京ICP060382号
北京市公安局备案:谁有电脑版的3ds模拟器发我一个谢谢。最好还有口袋妖怪xy_百度知道