BREW_ SDK入门篇
- 格式:doc
- 大小:776.50 KB
- 文档页数:14
1 BREW SDK 一览BREW SDK 包含了一组工具以帮助软件开发人员快速、高效率地开发,发布用于手持设备的 BREW 应用程序。
1.1 BREW SDK 组件BREW SDK包含了下列几个组件:∙BREW AEE:BREW AEE 是一个可扩展、面向对象的开发和运行环境,它提供了一个可以用 C 或 C++ 开发BREW小应用 (Applet) 或共享模块 (Shared Module) 的高效平台。
它采用一种消息驱动机制(类似与 Microsoft Windows,Macintosh 和 X Windows)以提高可用性。
∙模拟器:BREW 模拟器提供了一个图形界面用于装载和测试 BREW 应用程序,BREWSDK 套件中自带了几种模拟设备的配置文件,用户也可以自己创建新的设备模拟配置文件,以模拟不同的手持设备。
∙设备配置器:设置配置器可以用来创建新的设备配置文件或修改已有的设备配置文件,可以帮助配置诸如按键及其功能,设备屏幕大小和分辨率以及内存大小等。
∙资源编辑器:使用 BREW 的资源编辑器,可以为应用程序创建资源文件,开发者可以在Windows 或手持设备上使用同样的资源文件。
∙MIF 编辑器:BREW 的 MIF 编辑器用于生成 MIF(模块信息文件)文件,MIF文件包含了用于装载模块或应用相关的一些信息,如应用程序名称,图标等。
∙BREW 动态连接库:BREW SDK 套件包中包含几个动态连接库用于提供 BREW 相关的一些Window 平台核心服务调用接口。
∙BREW OEM 动态连接库:该动态库提供了下层用于在 Window 平台上模拟设备一些动态库。
∙BREW头文件:BREW SDK 头文件中定义了 BREW SDK 所提供了接口定义,用作开发BREW应用,每个 BREW 接口都有与之对应的头文件,在开发应用程序时如果用作某个接口,必需在源代码中包含该头文件。
∙VS Add-ins:BREW SDK 套件可与 Visual Studio 结合使用,在成功安装 BREW SDK 套件后,在 Visual Studio 开发环境中会自动创建一个 BREW 应用开发向导以简化 BREW 开发过程。
由于工作的需要,最近开始学习Brew。
1 什么是BrewBREW是Binary Runtime Environment for Wireless(无线二进制运行时环境)几个英文单词的缩写,从这几个单词中我们可以看到BREW的基本特性:1、二进制(Binary):BREW的API是一组二进制的库和组件的集合,生成的目标程序是可以直接在二进制环境下执行的CPU指令。
这代表了BREW的应用程序是高效的,无须经过任何中间层的转换。
2、运行时(Runtime):BREW的应用程序及扩展是在运行时发现,并根据需要载入运行的,区别于传统的“大映像”模式的程序方法。
这不但代表提供了一个运行时的支持,同时也说明BREW采用了按需载入的方式,最节约系统资源。
3、环境(Environment):一个开放灵活的针对无线通讯设备的客户/服务器环境。
正是这样的一个结构,才彻底改变了手持设备上单一应用程序的尴尬局面。
同时也正是因为BREW提供了一整套的解决方案,才培育出BREW应用程序的生存环境。
4、无线(Wireless):特别针对无线通讯设备而设计的。
这代表了他的要求是简洁高效,而且可以随时随地与网络联系,方便快捷。
通过上面官方的解释,可以看到,Brew提供了一组二进制的库和组建的API。
所以它不是一个嵌入式的OS,因此它需要一个其他平台作为支撑。
联想到公司的产品,也是如此,但是不能确定是不是一定要有一个平台作为支撑,有待考证。
2 BREW设备系统架构BREW设备的系统架构如图所示:在BREW内部,分为OEM和AEE层。
AEE层是BREW的接口层和内核所在的位置,应用程序就是通过一定的方法来调用AEE层的方法,来调用BREW函数库中的函数。
OEM层是提供给BREW设备制造商用来实现BREW底层接口的层次,也就是说,一个平台上如果需要支持BREW,那么就需要将在这个平台上实现BREW OEM层的函数,通常这个平台与某种专用集成芯片极其操作系统有关,例如基于X86芯片架构的Windows操作系统和基于高通公司CDMA系列芯片的RTOS实时操作系统。
BREWBREW 的全称是无线二进制运行时环境。
从基本的层面而言,BREW 平台就是手持设备上嵌入式芯片操作系统的接口或抽象层。
您可以将它看作是 PC 环境下 Microsoft Windows 的Win32 API。
BREW 平台是一组用于本地执行而编译并链接的二进制库,优化后能使应用程序利用无线服务和资源。
它控制流出或流入应用程序的事件流,能根据相应的事件启动、停止、中止或恢复应用程序。
BREW 执行环境在运行时可以发现应用程序和任何相关的扩展。
目录喜好的无线软件。
通过这种方式,用户将推动新的无线数据应用程序和服务市场的发展。
BREW主要应用在移动通信领域,BREW类似一个开放免费的PC操作系统,其他厂商可以在这个平台上设计各项应用。
作为一个手机应用平台,BREW能支持高速上网、下载游戏、无线购物等几十种数据业务。
厂商使用BREW设计一款应用软件,所有装载高通芯片的手机都可以使用,不会出现JAVA(另一种平台)上不同手机型号需要分别设计的麻烦。
此外,BREW还兼容其他语言,包括JAVA、FLASH。
编辑本段BREW的主要内容BREW 运行时环境是一个较薄的软件接口层,位于芯片系统软件和应用程序间的无线设备上,使最终用户可以无线下载程序并在启用 BREW 的设备上运行。
BREW 具有较高的闪存和 RAM 使用效率。
它包括以下内容:(1) BREW 应用程序平台完整的 BREW 解决方案始于无线设备上驻留的开放、标准应用程序执行平台。
● 瘦薄 - BREW 并不仅仅是为 PC 或 PDA 开发的产品的缩减版本,它比其它应用程序平台或成熟的操作系统小许多倍。
● 快速 - BREW 平台正位于芯片系统软件之上,启用了快速 C/C++ 本地应用程序,以及浏览器与基于Java 技术和扩展的虚拟机(例如游戏引擎和音乐播放器)的简易集成。
● 开放 - 除本地 C/C++ 以外,BREW 还支持其它多种语言,包括Java、可扩展标识语言 (XML)、 Flash 等执行环境。
BREW——无线数据应用统一平台无线数据行业的现状与个人电脑行业20年前的情形非常相似。
由于不同的电脑品牌和款式间没有一个通用的应用软件平台,程序员只能为特定设备编写程序,而消费者也被局限在狭小的范围内作选择。
但是通用个人电脑平台的出现使开发者可以为包括几乎所有计算机的大众市场编写代码,导致新软件的数量呈爆炸性增长。
软件产品的普及推动了硬件的销售,消费者可以选用他们喜欢的应用来安装到自己的电脑中,通过升级系统来更好地发挥新软件的性能。
今天的无线应用开发人员面临着众多不同的设备、编程环境和操作系统,它们都有自己独特的发展过程和风格。
大量设备使用的是各自设备制造商自行开发的软件层和界面。
每种应用都必须单独集成到每种不同设备上,这往往需要制造商或开发商自己的团队花费几个月时间来完成。
而且,由于第三方开发商与设备制造商或运营商没有紧密的关系,他们就没有向无线产品用户分发和销售应用程序的渠道。
所以,大多数第三方开发商一直都被阻挡在无线市场之外。
市场急需一个无线数据应用开发与执行的通用平台。
高通的BREW开启了进入这一快速增长的广大市场的大门,开发者可以更快地编写应用程序,进入大众市场,确保能得到报酬。
OEM厂商仅需极少量内部开发和整合工作,就可更快地推出新设备。
运营商在通过提供广泛且真正实用的应用、内容和服务,创造新的收入来源并获得竞争优势。
而消费者可以选择下载那些符合个人兴趣的无线软件。
因此,消费者将成为新型无线数据应用和服务的推动力,这意味着推动无线数据市场前进的将是市场的力量,从而最终使所有市场参与者获益。
什么是BREW?BREW(无线平台二进制运行环境)是专为无线设备设计的精巧而有效的应用程序执行环境。
高通公司免费向手机制造商提供BREW,使他们将BREW集成在设备中。
高通同时也向开发人员免费提供BREW软件开发套件(SDK)。
SDK中包括完整的BREW 应用平台,以及大量用于编写BREW应用程序的工具。
Brew学习一、Brew环境的搭建首先学习如何搭建brew的环境,每个环境都有其各自的软件环境。
为了搭建Brew 环境,我们需要安装Microsoft Visual C++ 6.0、Brew SDK4.0.1、Brew Tools。
注意软件的安装顺序,依次为:Microsoft Visual C++ 6.0 →Brew SDK→Brew Tools。
当Microsoft Visual C++ 6.0安装好以后,还需要安装补丁Vs6sp6.exe,这个补丁的作用是避免在编译时出错而没有响应。
当然,还可以安装VC助手来方便代码的编写。
二、创建第一个应用当上面软件都安装完毕,打开V C,选择Tools→Customize中的Add-ins and MacroFiles,在BREWAddins.DSAddin.1打上对勾,这样就添加了Brew Tools中的宏到VC,便于以后的使用。
如图1、2图1图2 Brew Tools工具条现在我们创建第一个应用,选择File→New,选择Projects,如图3:选择Brew Application Wizard这个选项。
在Project name输入应用名称,Location选择工程保存目录,点击OK。
这里我们创建的工程名为:HelloWorld图31.在图4直接点击Next图42.在图5中点击MIF Editor,打开MIF编辑器图53.在MIF Editor中点击,在弹出的Specify BRE Class ID中选择Locally,然后在Class Name中填入创建的工程名HelloWorld,注意这里的名字一定要和工程名一样。
在Class ID中填入8为有效数字,Class ID要唯一。
点击OK。
如图6图64.在弹出提示框中选Yes,保存HelloWorld.bid文件到对应工程的文件夹中,然后选择File->Save,保存类型为BREW Module Information Files v 2(*.mif),文件名任然同工程名相同,保存在对应工程的文件夹中。
《深入BREW开发》——第六章使用Applet和模块第六章使用Applet和模块在BREW SDK中,每一个应用程序模块做为一个独立的Windows DLL文件开发。
每一个模块中可以包含一个或多个Applet,并且必须有一个与此应用程序模块对应的MIF文件。
通过BREW MIF Editor(MIF文件编辑器)创建的这个MIF文件中,包含了关于这个模块信息,例如支持的类、支持的Applet、Applet的权限和Applet信息等。
在MIF文件中还包含了模块中每一个类和指定给其他应用程序使用的类的唯一Class ID。
我们这里所说的类,包含了Applet和扩展接口。
一个模块可以从BREW的资源文件中读取数据,使得应用程序中可以使用字符串、图片和对话框等资源。
通过在资源文件中存储指定的语言数据,使得针对不同国家开发不同版本的应用程序成为可能。
我们可以使用BREW Resource Editor(资源文件编辑器)来为应用程序创建资源文件,同时生成资源文件中关于资源定义的头文件。
一个已经开发的BREW应用程序可以运行在模拟器上(DLL文件),也可以运行在指定的设备上(MOD文件)。
如果需要生成MOD文件,必须包含所运行设备CPU类型的专用编译器,如ARM CPU的C/C++编译器,不过对于普通的开发者来说,获得ARM编译器需要从ARM公司购买软件,这就需要一笔小投资了。
建立应用程序的基本的头文件和源文件已经在BREW SDK中提供了,通过这些文件可以创建一个应用程序和资源文件。
BREW应用程序使用的资源文件和二进制资源文件,无论应用程序运行在模拟器环境下,还是在设备的BREW环境下,都是使用相同的文件格式,无需在设备和模拟器之间进行不同的处理。
下面就列举出了开发一个BREW应用程序所需的组件:1、BREW AEE随SDK提供的头文件(在SDK中的inc目录下的.h文件)2、BREW模块创建所需的助手源文件(AEEAppGen.c和AEEModGen.c)3、Applet源文件和头文件4、使用MIF文件编辑器创建MIF文件5、Applet资源文件和相应的资源文件头文件,这些文件使用BREW资源文件编辑器创建注意,应用程序中使用的源文件,对于Windows环境和指定设备环境下是相同的,使用同样的源文件去建立Windows 的DLL二进制文件和设备指定的MOD二进制文件。
BREW平台架构及基本知识介绍BREW平台基于C/C++编程语言,并提供了一系列的API(应用程序接口),开发者可以利用这些API来访问手机的硬件和软件功能,如通话、短信、音乐、图像等。
BREW应用程序可以直接运行在手机的操作系统上,而不需要通过Java虚拟机(JVM)等中间层。
BREW下面系统是BREW平台的底层操作系统,负责管理手机的硬件和软件资源。
它包括了设备驱动程序、内核和文件系统等组件,用于提供底层功能支持,如文件访问、内存管理和处理器调度等。
BREW下面系统使应用程序能够直接访问手机的硬件功能,为开发者提供了更高的灵活性和性能优势。
BREW运行时环境是BREW平台的核心组件,它负责加载和执行应用程序。
它包含了一些必要的基础功能,如应用程序管理、内存管理和安全管理等。
BREW运行时环境还提供了一些标准的API,如用户界面、网络通信和数据存储等,用于开发者创建应用程序的各种功能。
总体来说,BREW平台是一个完整的移动应用开发和分发平台。
它提供了开发者需要的一切工具和资源来创建和发布应用程序。
同时,BREW平台还具有较高的性能和较低的资源占用率,能够满足用户对移动应用的需求。
BREW平台的发展不仅推动了移动应用市场的繁荣,也为开发者带来了商业机会和收益。
总结起来,BREW平台是一个完整的移动应用开发和分发平台,具有高性能、低资源占用率的特点。
它由BREW下面系统、BREW运行时环境和应用程序组成。
开发者可以利用BREW的SDK来创建各种类型的应用程序,并通过BREW平台的应用商店进行发布和分发。
BREW平台的发展不仅推动了移动应用市场的发展,也为开发者带来了商业机会和收益。
Brew工具:BREW Tools SuiteBrewAppLoader:上传应用到手机的工具。
QPST:功能比BrewAppLoader更强大。
BREWLogger:手机状态查看器:可以查看手机运行时状态和DBGPRINTF事件Brew编译器:ARM Developer Suite :把c代码编译成mod文件,以便上传到手机上。
注意,安装时路径不能有空格。
BREW_Addins:vc插件,可在vc上生成工具条,可在vc上生成编译用的mak文件。
生成mak文件后,可以用vc的工具 Brew Applcation make 生成mod文件。
上传手机应用一般包括:mod文件(执行程序)(必须)mif文件(应用程序权限配置文件) (必须)sig文件(手机的数字签名,每一个不同的手机都需要不同的sig文件,该文件有一定的使用期限,过期后要重新申请)(必须)bar文件(资源文件)(可选)另我们的应用一般还包括help.txt (帮助)about.txt (关于)有规定:上传到手机上的一个应用的文件数不能超过8个。
上传到手机上的文件名必须为小写。
Mif文件名、应用的目录名和mod文件名必须一致。
一般修改了上传了mif文件后需要重启手机。
Brew sdk:(目前使用2.1.0或2.0.1)Mif编辑器:用法参阅sdk中的:BREWSDKUserDocs.chmBREW Emulator 模拟器:本地运行brew的模拟程序,运行时注意mif目录和小程序目录的正确性,应用的mif文件和应用的文件夹名字要相同,要在同一个目录下。
注意:在本地运行时,注意应用的目录下不能存在sig文件,否则应用无法运行。
模拟器设置工具BREW Device Configurator:此工具可对模拟器进行设置,进行对具体某一款进行模拟匹配,设置时注意里面的平台号一项,有些手机没有设置平台号,因为我们的应用是根据手机的平台号码来区分是那一款手机的。
BREW平台架构及基本知识介绍1.BREW平台架构:-BREW核心:BREW核心是BREW平台的基本组件,它包含了各种系统服务、功能库和驱动程序。
BREW核心提供了一系列的API(应用程序接口),开发者可以使用这些API来实现手机应用所需的各种功能,如图形绘制、输入输出控制、网络通信等等。
-BREW应用:BREW开发者使用BREWSDK(软件开发工具包)来创建BREW应用。
BREW应用可以是游戏、社交应用、商务工具等等。
BREW应用采用C/C++语言编写,并且可以使用BREW核心提供的API以及其他第三方库。
-BREW运行时环境:BREW运行时环境是BREW平台的执行环境,它负责加载和执行BREW应用。
BREW运行时环境提供了应用管理、内存管理、安全控制等功能,同时支持各种手机硬件平台和操作系统。
2.BREW应用开发流程:开发BREW应用的基本流程如下:-创建应用:使用BREWSDK,开发者可以创建一个新的BREW应用项目,并编写应用的源代码。
-调试与测试:在创建和编写应用的过程中,开发者可以使用BREWSDK提供的模拟器进行调试和测试。
-打包与提交:当应用开发完成后,开发者需要将应用进行打包,并提交到运营商或BREW平台的应用商店进行审核和发布。
3.BREW平台的特点:-跨设备兼容性:BREW平台的应用可以在多个不同手机型号和运营商的设备上运行,从而大大提高了应用的覆盖范围。
-独立于操作系统:BREW提供了独立于手机操作系统的运行时环境,这意味着开发者不需要为不同的手机操作系统进行适配和定制,从而简化了应用开发和发布的流程。
-应用商店支持:BREW平台拥有自己的应用商店,开发者可以将应用提交到应用商店上进行销售和分发。
总结:BREW平台为开发者提供了一个快速、简便的方式来创建和发布手机应用程序。
它通过提供独立于操作系统的运行环境,实现了跨设备兼容性和手机端集成等特点。
开发者可以使用BREWSDK来创建应用,然后进行调试、打包和提交到BREW平台的应用商店。
《深入BREW开发》——第一章硬件基础版权所有,未经本作者同意不得转载,否则视为侵权行为,保留追究责任的权力。
第一章硬件基础硬件是软件的运行平台,没有硬件的支撑软件也将不复存在。
您能想象没有显示器软件将如何显示图形,没有CPU软件将如何运行吗?反正我想象不到!但是如果把问题反过来问就问到本质了,软件运行需要哪些硬件支持呢?看图1.1:CPURAMROM输出设备输入设备存储设备图1.1 系统结构框图我们抛开硬件的什么电器特性等等,去芜存菁,就是上面的这个图了。
如果程序要运行没有CPU是不行的,CPU要快速的交换数据,没有RAM也是不行的。
因此无论任何系统,CPU和RAM都是必不可少的。
您一定会提醒我ROM不也是不变的吗?这种说法不完全对,因为在PC系统和嵌入式系统之间ROM的作用是不一样的。
在PC系统中ROM就是那个BIOS芯片,是用来提供系统的启动代码和基本的输入输出功能的;而在嵌入式系统中,ROM存储了全部的代码,它已经将PC中的BIOS和硬盘的与代码相关的功能混合在一起了。
PC的ROM ——BIOS芯片可以采用Flash芯片,在这里之所以不写成Flash芯片是因为BIOS的作用和嵌入式系统的Flash作用不大一样,使用BIOS以示区分。
1.1 CPU和RAM从软件观点来讲,任何CPU和RAM都可以应用于各种系统中,不存在明显的区别,只要CPU可以执行指令控制设备就可以了。
但是考虑到耗电以及体积(嵌入式设备通常要求耗电低、体积小)等问题,嵌入式系统就发展出了专用的CPU芯片。
当前应用最广泛的是ARM CPU。
ARM CPU是由英国的ARM公司设计的,由于其执行效率高,体积小,耗电少等特点被广泛应用于嵌入式系统。
由于嵌入式系统要求高集成度,通常不会存在单独的CPU芯片,而是将CPU和很多的外围电路集成到一起,做成一块芯片,因此ARM采用授权的方式提供内核芯片设计,以便于使用者进行芯片的集成。
CPU按照次执行指令的数据带宽可以分为16位、32位、64位等。
Brew 安装(适用于win2k,winxp等更高版本的系统):1):下载brew sdk(现在很多地方都有,基本是brew sdk 2.0.0.35,brew sdk 2.0.1.5或更高级,brew3.0及后续版本目前还没有实际进行开发)2):安装brew sdk(路径不要有空格,根据提示设置环境;同时将ARMMakeBREW App.dll, BREWIntegratedHelp.dll放到vc安装目录如下:-Microsoft Visual Studio\Common\MSDev98\AddIns下.设置:tools->customize->add-ins and macro files,将BREWIntegratedHelp.DSAddin.1和ARMMakeBREW App. DSAddin.1选中,关闭设置,在vc环境中将新生成的浮动工具栏拖到相应的位置)3):brew相关工具的安装编译工具--- ARM Developer Suite 基本使用1.2版本主要用于编译生成mod文件,手机使用;其他相关使用工具:BrewToolsSuite基本使用2.1.1.3版本等,用来手机的调试及调入删除等功能)4):arm安装后,启动一下CodeWarrior for ARM Developer Suite ,以后就可正常使用arm.对应工具的作用brew sdk工具:BREW Compressed Image Authoring Tool: 图像压缩, bci格式-使用image接口进行播放BREW Device Configurator : 模拟器文件配置设置,如果使用内存很大,选择windows 内存方式BREW MIF Editor : mif 文件配置编辑器BREW Resource Editor : 资源编辑编译器build菜单Brew emulator : 模拟器//(可以通过修改设备文件,切换模拟器,如有不正常现象,可以删除prefs.dat试试,重新打开模拟器)其他基本是帮助文件.BrewToolsSuiteBrew apploader ///用于手持设备上的文件导入,导出(不是所有文件都可导出的)或文件删除功能(通过com口或者usb口连接设备)Brew appsigner ///签名文件的制作,一般由高通进行管理.Brew applogger ////调试工具,在应用程序中,通过DBGPRINTF输出的内容都可通过applogger看到内容(通过com口或者usb口连接设备).其他不作介绍.Arm的使用:1).通过ARMMakeBREWApp 的浮动工具栏生成相应的mak文件2).在命令行窗口下:进入相应目录,通过nmake /f *.mak all 即可编译生成mod文件brew开发的程序一般都放在其相应的examples下面,mif文件直接在examples中;其他的文件包含在于mif相同文件名的文件夹下面.brew开发生成的文件的使用:模拟器: mif,examples下;其他文件在相应目录下: dll及其他bar(可以多个)和数据文件,不可有签名文件手持设备: mif,examples下;其他文件在相应目录下: mod及其他bar(可以多个)和数据文件,必须有签名文件1.mif文件1) mif文件applet选项卡(1) 通过BREW MIF Editor生成.(2) 本地使用,可以暂时生成一个class id ,正式提交必须重新向高通申请class id ,每次更换id,请先删除老的id,然后生成新的id,examples目录下避免相同id的mif文件出现.(3)其他根据实际进行填写;mif的三个图形文件: thumbnail.bmp(16*16*256),icon.bmp(32*32*256),image.bmp (65*42*256)分别用于brew管理器的显示,icon是使用大图标方式, thumbnail,image是小图标显示的两项:thumb,菜单里面,image菜单上面的大图像.Icon图像选择:在其相应的browser,thumbnail,image图像选择:advance里面的browser.2) mif文件的general选项卡(1) 根据需要填写作者,版权,版本号(2) 权限设置:使用了相应的功能就应该选择相应的文件,否则操作不会成功,如有文件操作,就应该将file的框选上,其他类似.3) mif文件的Externsions选项卡,如作为公用模块可以使用.4) mif文件的dependences选项卡,如果使用了公用模块就在这里添加相应的class id(不建议这种方式,升级并不方便).5) 后面的不在介绍,基本不使用2.bar文件的说明1).bar文件通过BREW Resource Editor生成,源文件为bri格式,经过编译生成bar文件2).可以打开bri里面的string,image,dialog加入资源,以便程序使用(string选择unicode编码,dialog很少使用).3)当然这里的文件可以进行压缩,作为更深的研究以后再说(gzip进行压缩,将近1/3, IUnzipAStream接口处理.)3.dll文件1)模拟器的dll执行文件,用于模拟器,不用于手机2)执行时,dll文件,必须在examples的相应目录下-一级目录,不能在其debug或release下4).mod文件1)手机的执行文件.用相应的mod文件代替dll文件2)通过nmake /f *.mak all 即可编译生成mod文件5) sig文件模拟器中不需要签名文件,但是手机的目录下必须加入签名文件,有与卡相关,有与机相关.其他的诸如:数据文件,或者多个bar文件等均可根据需要添加手机文件的导入,请注意不要乱删除其他系统文件以及避免添加中文名字或名字不太规范的文件brew 开发流程:1) 启动vc在创建工程中选择brew类型,创建空工程.2) 根据提示建立mif文件,放在examples下,建立classid文件3) 根据需要创建头文件,及源文件,重新定义应用程序的结构体.4) 用全部brew api替换c中的相应函数(一般大小写转换或者使用接口)5) 字符串string资源添加时,选择unicode方式6) 包含classid文件,及资源头文件.7) 如下修改TetrisApp为相应的新的app结构,以后在app中定义的变量才能正常使用if(AEEApplet_New(sizeof(GoChessApp), ClsId, pIShell,po,(IApplet**)ppObj, (AEEHANDLER)GoChess_HandleEvent,(PFNFREEAPPDATA)GoChess_FreeAppData)== TRUE)8) 程序使用的优先级如file,net等,务必在mif文件中选择brew开发必须处理的事件(Piece_HandleEvent中处理):1) EVT_APP_START:程序的启动进行处理,启动您的应用程序,调用相应的函数,初始化资源尽量一次调入,可以在程序中,加快速度2) EVT_APP_SUSPEND :程序的挂起,当来电或短信时,挂起,取消一切的回掉函数,包括定时器,解析,网络回掉,bci播放等.3) EVT_APP_RESUME:恢复,程序的关键界面请务必恢复,其他无所谓吧,根据测试协商.4) EVT_APP_STOP:游戏结束的调用.释放所有资源,brew管理器自动调用,上面的释放函数如:GoChess_FreeAppData,你可根据需要重新定义释放函数.5) EVT_KEY:游戏的设置机制了,自己处理.6) EVT_APP_NO_SLEEP:设备休眠问题,游戏运行中,会逐渐变慢,只要这个消息,返回true即可.7) 其他如EVT_KEY_PRESS,EVT_KEY_RELEASE,酌情处理.8) 这里的定时器与pc定时器概念不同,只调用一次回掉函数.9) 其他的函数使用,请参照brew api文档说明了(务必使用brew api函数).10) 暂时不支持浮点运算,如有需要,请先转换,然后处理.11) Staic控见中,以空格代替换行.常见问题分析:1) 死机,自动关机,一般有使用了无效指针,规范编程,实时初始化,释放先判断后置零,问题会减少很多2) 莫名其妙的事件调用,不同手机的处理不一样,如有些手机先触发EVT_APP_SUSPEND再触发EVT_APP_STOP等,请仔细测试不同手机的触发,以便处理,这些问题也可通过规范编程避免不同调用顺序引起的不当指针使用.3) 声音播放问题,关键看手机本身的支持性能,其次多释放,多重新创建也许可以解决问题;也可以考虑播放方式,如内存播放或直接播放;挂起也要停掉声音,释放回掉等来检查解决问题.4) 图形问题:不能正常显示,请检测图形的颜色深度是否适合,透明的支持性能,甚或内存的大小5) 一些接口不能正常创建,请注意创建顺序以及mif中优先级是否选择等.6) 尽量使用c语言编程,c++中,回掉函数静态定义也许很不方便处理.7) 对于短信和电话的处理不同手机也不完全相同。
sdk使用教程SDK是软件开发工具包(Software Development Kit)的缩写,它是一组开发工具、库和文档的集合,旨在帮助开发者更快速、更高效地开发软件应用程序。
一、SDK的基本概念与作用1.1 什么是SDK?SDK是由软件公司、硬件厂商或第三方提供的一些开发工具、库和文档的集合,用于帮助开发者在特定平台上构建应用程序。
1.2 SDK的作用SDK的作用是简化开发过程,提供一系列的工具和资源,使开发者能够更快速、更高效地开发应用程序。
它可以提供一些常用功能的实现,减少代码的编写量,提高开发效率。
二、SDK的使用流程2.1 下载和安装SDK在开始使用SDK之前,首先需要从官方网站或其他途径下载并安装SDK。
安装过程通常会包括一些必要的配置和设置,根据不同的SDK,可能需要安装其他依赖软件。
2.2 创建项目安装完SDK后,就可以创建一个新的项目。
根据具体开发平台和开发工具,创建一个新的项目可能会有不同的步骤和选项,但一般都会包括设置项目名称、选择开发平台、配置项目属性等。
2.3 导入SDK在创建项目之后,需要将SDK导入到项目中供开发使用。
通常,可以将SDK以库文件或模块的形式导入到项目中,然后在代码中引用它们。
2.4 编写代码在导入SDK后,就可以开始编写代码了。
根据SDK的具体功能和特点,在编写代码时可能需要按照相应的规范和API进行调用。
一般来说,SDK会提供一份详细的文档,其中包含了API的使用说明和示例代码,可以参考文档进行开发。
2.5 调试和测试在编写完成代码后,可以进行调试和测试。
开发工具一般会提供一系列的调试工具,可以帮助开发者检查和修复代码中的错误,并确保应用程序的正常运行。
2.6 打包和发布在经过测试没有问题之后,就可以将应用程序打包并发布到相关的应用商店或平台上。
打包和发布的具体流程和步骤可能会因平台和SDK的不同而有所区别。
三、常见SDK的使用示例3.1 Android SDKAndroid SDK是一套用于Android平台开发的工具集合。
BREW学习之路-解析BREW学习过程东方欲晓-毛晓冬2005-10-10首先声明,我不是BREW高手,我只是一位普通的BR EW OEM工作者.只是在自己不断学习BREW的过程中,总结了一些学习BREW的方法,或者说是要学好BREW应该一步步怎么走,循序渐进的看些什么,学些什么,现在将这些心得体会和大家分享,交流。
(注,以下区分OEM和Developer,OEM是指手机OEM厂商作BREW Porting的,Developer是指作BREW应用开发的,即CP.每一步都分析对于这两种人的必要性) 1. 对BREW有最基本,最浅显的了解(通过网站关于BREW的新闻,介绍,对BREW有个非技术角度的总体概念,知道他出现的用途是什么,在无线移动产业中处于什么位置,有什么优势等等,BREW可以用来作些什么好玩的东东),激发对BREW的初步热情.->该步骤同时适合OEM,Developer->参考资料:1. 请baidu上进行BREW关键字搜索2. BREW Overview.pdf2. 进行BREW最基本的技术层次的学习(对BREW最基本的事件驱动机制的了解,如何创建接口,clsid 是什么?如何一步步用vc开发一个动态应用,每一步骤的作用,resource,mif工具的使用,helloworld 程序如何被创建,如何进行事件处理的大致流程,如何将BREW动态应用转变为mod文件下载到手机.....等等等等,这些基本的内容可以通过一般的BREW文档学习到,qualcomm网站上有一篇很好的brew基本知识学习文档,study brew from sc ratch,另外网上有两本关于BREW的英文ebook,也可作为入门资料,有一本BREW手机游戏开发的中文书也可以作为该阶段的入门资料)->该步骤同时适合OEM,Developer->参考资料:1. brew_app_from_scratch.pdf2. BREW Programming guide(海信).pdf3. starting_brew.pdf4. 深入BREW游戏开发5. Apress.Developing.Software.for.the.QUAL COMM.BREW.Platform.eBook-LiB.rar6. Wordware.Wireless.Game.Development.In.C.Cpp.With.BREW.eBook-LiB.chm3. 深入理解BREW接口机制:BREW采用面向对象的接口体系结构对外提供服务.理解接口机制将有助于理解调用所谓的接口API(实际上是宏映射)是如何最终调用到AEE层的真正函数,定义一个接口究竟底层作了什么,BREW中的接口究竟是如何创建的等等(该机制非常非常好的学习文档是aee.h和example 下的mediaplayer,aee.h里的宏,就是接口机制的实现手段,mediaplayer更是将brew的接口机制发挥的淋漓尽致)->该步骤适合有兴趣的Developer,因为并非所有的D eveloper需要知道接口机制,将IXXX_XXX理解为真正的函数,熟练的运用他们,而不知道他们的底层实现机制也不会妨害Developer的开发,但是对于需要开发Extenti on Interface的Developer,理解BREW接口机制是必须的. 该步骤对于OEM而言是必须的.因为如果不理解B REW接口机制的话,BREW OEM所作的Porting或者Modi fy是盲目的,因为你根本不明白上层调用所谓的接口函数最终是如何映射到底层的,这样你无法清晰地发现,问题究竟在哪里?而对于Porting新的Static Extention Interface,则更加必须掌握接口机制,比如IIMAGE,IMEDIA这两个抽象接口的OEM层新format接口的Porti ng,你必须掌握接口机制,否则你不可能自己去实现一个接口,让上层很好的调用.->参考资料:1. BREW_Architecture_Extensions.pdf2. BREW究竟是什么-BREW本质之我见.pdf(笔者) 3. deep in BREW’s Interface .pdf(笔者) 4. AEE.h5. Mediaplayer.c 6.BREW部分接口源码4. BREW面向开发的核心机制的深入熟悉和理解:主要是事件分发,处理机制,Timer机制,Alarm机制,Notify机制,Callback机制,suspend,resume,ba ckground等等->该步骤同时适合OEM,Developer->参考资料:1. deep in Event-Driven.pdf(笔者)2. 深入BREW消息处理机制.pdf(笔者)3. SDK帮助文档5.BREW开发代码的熟悉,积累以及SDK API的熟悉:主要是通过阅读别人的应用(Example是一个很好的示例代码)加深对BREW接口函数使用的理解,同时再结合自己的不断锻炼,再结合查阅BREW SDK帮助文档.使得自己能加深对BREW各接口使用的理解,同时积累开发BREW应用程序的经验 (同时注意有关C++如何开发BREW应用以及注意点)->该步骤适合Developer,同时适合感兴趣的OEM->参考资料:SDK帮助文档以及别人的应用源码6.进行(你负责的或者是感兴趣的)BREW模块(接口)的深入学习:这是OEM的重要学习内容,原则上对一个模块的真正学习,应该包括:从整体上把握该接口的作用,它为开发者提供了什么功能,开发者利用它能做什么?从开发者的角度,最典型的使用该接口的方法和顺序(过程)是如何的?该接口的AEE层(如果看的到代码的话)和OEM层是具体如何实现的,这点的学习有助于清楚该接口对外提供的服务在底层是究竟如何实现的?如果该接口存在异步调用系统服务的话,它和系统是如何交互的,如何进行异步service的调用?如果该接口是一个抽象接口,具体实现在OEM层的话,要清楚该接口实现的特点,如何扩展该接口->原则上只适合OEM,因为Developer是看不到代码的.->参考资料:1. SDK帮助文档2. QCT Release的BREW平台代码 (主要是各Interface的具体实现)7.BREW模块加载,应用启动机制学习:可以通过AEEModGen.c,AEEAPPGen.c以及mod文件的makefile深入学习BREW App的创建过程,Module的加载过程->该步骤同时适合OEM,Developer,对于OEM,因为存在写静态应用的可能性,所以对于静态应用加载的特殊过程(需要提供的特殊load)需要熟悉.->参考资料:1. AEEModGen.c,AEEAppGen.c,makefile of mod2. 深入BREW模块加载机制.pdf(笔者)8.BREW面向OEM的核心机制学习:学习如何在Task中启动BREW,BREW事件如何分发,启动,关闭一个BREW应用的整个过程,oem_notify机制,抽象接口机制,Interface Register机制,BREW分层概念,app stack,如何传递Key Event,App Context,Memory Manager,Object Manager,Callback,Systemcallback,System Object等等面向OEM层的BREW核心机制->该步骤仅适合OEM,因为Developer不可能使用这些机制.对于OEM,通常某些接口的OEM层实现需要采用异步机制来调用系统服务,此时将综合运用以上机制,应该熟悉这些机制.->参考资料:1. 深入BREW抽象接口机制.pdf(笔者)2. BREW分层机制阐述.pdf(笔者)3. PK相关文档9.BREW接口验证机制的学习:主要是学习PEK工具的使用,这样能经常性的来验证BREW接口Porting的完整性.同时PEK中的OAT源码也是学习接口使用的很好资料.通常,对于一个扩展的接口,需要提供扩展的OAT 测试module,所以需要熟悉这些.->该步骤仅适合OEM->参考资料:PEK相关文档10.BREW UI机制:主要学习BUIT(现在改名为BUI W)和UIOne.这两种机制主要用来进行UI开发.由于B UIT大量使用了设计模式,所以初学较难.->同时适合感兴趣的OEM,Developer->参考资料:1. BUIT SDK2. BUIT Example3. AppMgr 3.x11.OEM Notes的经常性关注:经常性登陆BREW OEM Extranet下载BREW OEM Notes,有助于拓宽解决一些BREW Porting的方法,思路,即便不是马上能用上,也积累了一些经验->仅适合OEM->参考资料:OEM Extranet资料。
系列: BREW开发入门指南电话,这一再一般只是的通信工具已成为人们随身携带的IT终端,而且重要性正超越电脑。
随着通信技术的进展,3G、4G、5G……它的地位将愈来愈高。
在软件开发领域,从PC平台向电话平台转换也是很多人的必然之选。
IT界,“快鱼吃慢鱼”是永久的真理。
本期,咱们就为大伙儿带来继J2ME以后当前最火爆的电话开发技术BREW,希望能给有志于电话软件开发的同窗一个正确的指引。
电话软件开发新贵——BREW第一咱们从字面意思来了解,BREW(Binary Runtime Environment for Wireless)的全称是无线二进制运行环境,是美国高通公司于2001年推出的基于CDMA网络“无线互联网发射平台” 上的增值业务开发运行的大体平台。
它要紧用于无线应用程序和效劳,结合数据和语音等功能,能够更好地知足慢慢成型的无线因特网用户需求。
相对Java,BREW是一个更底层的技术,要紧应用在移动通信领域,类似于一个开放免费的中间件系统,其他厂商能够在那个平台上设计各项应用。
目前,支持BREW的电话也慢慢增多,主若是日系和韩系电话,例如LG向全世界推出了15款支持BREW的电话,其中在中国市场能够买到LG 8188和LG 8280下面就让咱们来细数BREW的各类优势吧!一、“钱”途无量的BREW依照高通公司2006年提供的资料,那时全世界已有近亿部支持BREW的电话。
估量到2020年末,全世界将再增2亿部支持BREW的电话。
在商业模式上,高通选择的是和运营商合作的方式,通过运营商进行电话和业务的定制,从而增进BREW的进展。
事实证明了这种模式的成功,自2001年11月第一家运营商推出基于BREW 的效劳以来,整个BREW无线效劳成功地维持了增加的势头。
从高通发布的官方资料来看,截至2006年6月,全世界BREW发行商和开发商通过销售BREW应用和效劳已获利超过7亿美元;而短短几个月以后,到2007年3月,那个数字已经冲破10亿美元大关,这是BREW无线数据业务进展的重大里程碑,有力的证明了BREW产品和解决方案在全世界稳固的和可持续的进展。
BREW™SDK入门篇(一)第一部分- 预备知识在跟随本文学习相关知识点之前,你需要以下环境:Microsoft Visual C++ 6.0 (或更高版本)1.1版的BREW SDK(或更高版本).要了解系统最低要求,和获得更细节的资料,SDK的安装指导,请查看SDK 1.1的README文件。
注意,在这里我假设你已经读过了本系列中之前的一篇文章,“什么是BREW”。
在以下的例子中,你需要知道,文件名是非常重要的。
确切的说,应用模块的信息文件(.mif文件)必须与该模块的dll文件同名。
基本上,用BREW你需要选择一个名字并且自始至终使用它。
当你读完这篇文章后,你会很清楚地知道.mif文件后缀的重要性。
BREW应用程序向导1.1版的SDK包括了一个BREW应用程序向导(BREW Application Wizard™),这在1.0版本里是没有的。
这个应用程序向导设置了大部分的可应用的项目选项,并且为BREW应用程序生成最小的框架代码,该向导假设你将用C进行开发。
项目的设置和初始代码与1.0版的SDK兼容。
在US,目前有4款BREW话机,两款是安装了1.0版本的BREW AEE(Application Execution Environment),另外两款是1.1版本的。
为了保证对这些以及以后发布的话机兼容,建议你采用1.0版的SDK开发将来准备商业化的项目。
在本课程中,你可以用SDK1.1来生成基本的项目,然后将应用程序相关的文件移至安全位置,反安装SDK 1.1,下载并安装SDK1.0,完成剩余的开发。
这样你可以保证项目是对SDK1.0兼容的,并且能够运行在当前和以后的话机中。
图1安装完SDK后,打开Visual C++点击“文件>新建”,打开新建对话框,选中“项目“选项卡,如图1。
选择BREW Application Wizard,确认位置栏输入的是\yourBREWdir\Examples (BREW SDK安装目录下的Examples目录),在工程栏输入“helloBREW”作为项目名称。
点击OK开始BREW应用程序向导。
这一步将出现图2。
对于最简单的应用,我们不需要这个对话框里所涉及到的任何一项,所以在这里我们不作选择。
如果我们需要加入这些项的支持,必须明确一点:仅仅选择这个对话框里的选项可能是不够的。
这些多选框为的是确保在向导生成的代码中包含了合适的接口头文件。
应用程序需要在BREW MIF Editor™的常规选项卡中拥有相应的优先级。
MIF编辑器我们将在下面讨论,图4是它的截图。
以后的文章里我们会介绍相关界面,将详细讨论这里提到的优先级。
图2MIF 编辑器在向导的第二步,有一个“Note”提醒我们需要为BREW应用程序创建一个模块信息文件(.mif)。
点击写有“MIF Editor”的按钮启动BREW MIF编辑器。
图3在MIF编辑器主对话框的小程序选项卡上,点击新建小程序按钮来打开如图3显示的生成ClassID对话框(在本文中“小程序”和“应用程序”指的是同一个事物,可能交替用到)。
注意classID必须是唯一的。
名称框里,我们输入“helloBrew”作为类名。
在快速查看BREW安装目录下inc目录(\ ;yourBREWdir\inc\)中的头文件:AEEClassIDS.h、AEEUsageAppIDs.h和AEESampleAppIDs.h 后,我们知道0x1234ABCD不会与SDK中包含的任何其它ID有冲突。
于是我们在这里选择“本地”并在ClassID文本框中输入“1234ABCD”或者其他不会出现冲突的ID。
如果今后需要做商业化的应用,必须从BREW开发者外联网获得全球唯一的ID。
点击“生成”按钮,并在接下来的确认对话框中点击“是”以确定生成本地Cl assID。
此时,MIF编辑器创建了一个BREW ID(.bid)文件。
该文件只是简单的包括了刚才生成的本地ClassID的“#define”定义语句。
在下面的文章里,我们必须确认“helloBREW.bid ”文件被“helloBREW.c”源文件引用(#include)。
图4显示的是BREW MIF编辑器的“小程序”选项卡。
在名称中输入“Hello BREW”,小程序类型里选择“工具”。
我们还没有给出图标文件。
现在不要关闭MIF Editor,我们很快回来。
图4在我们的.mif文件里,将用到三个位图(.bmp)文件:一个大约为85×40象素,一个是26×26象素,还有一个缩略图是16×16象素。
你可以用Windows附件中的画笔程序或者Visual Studio®中的资源编辑器来创建这几个位图。
图5显示的是我用后一种工具生成的85×40象素的图像。
当然,你可以用任何你顺手的工具。
(注:将这几个位图文件另存为256色的位图文件,否则无法在Emulator中显示。
)图5完成并保存这三张位图后,返回MIF编辑器,现在你可以在“图标”栏输入刚刚创建的26×26象素的图片。
下一步,在MIF编辑器的小程序选项卡中点击“高级”按钮。
这个对话框里要求你提供一个“图像”文件和“缩略图”文件。
“图像”是85×40象素的那个文件,而“缩略图”是16×16的。
这个例程即将应用于夏普(Sharp)Z800手机,这款手机有一个128×144象素的显示屏,可以显示最大为108×72象素的图像。
注意这个最大值只适用于MIF编辑器中。
基于SDK的I Image接口的图像尺寸仅受限于设备物理屏幕的尺寸。
不同手机有不同的屏幕尺寸和最大图像尺寸。
认证的BREW开发者可以在BREW外联网上获得详细的手机规格说明。
要了解如何才能成为BREW认证开发者,请参考Qualcomm® BREW 网站.题外话,如果你想在模拟器或者手机上显示动画,你可以创建更大的图片。
在MIF编辑器里,你可以很简单地创建一个大图片,这个图片由多张水平方向排列、大小一致的帧组成。
在任何时候,动画只显示1帧,这样,这张位图的总宽度可能大于设备的显示宽度。
需要注意的是,为了让动画很好显示,位图的宽度必须正好是它高度的几倍。
现在我们已经创建了一个基本的模块信息文件,可以关闭MIF编辑器继续我们的探险。
记住以前提过的要点,.mif文件必须跟应用程序的.dll文件同名。
注意刚刚创建的“helloBREW.mif”文件必须拷贝至...\yourBREWdir\Examples\MIF\256 Color\目录,这样AEE 才能找到并且适当地初始化hellBREW应用程序。
下一次,当我们在BREW应用程序向导生成的源代码中添加自己的代码并让应用在BREW模拟器上运行时,这一点变得尤其重要。
资源编辑器大多数的应用程序需要字符串和图像资源,不要涉及一些由不同屏幕组成的用户接口。
BREW的小程序资源文件(BREW Applet Resource )(.bar)就象你的应用程序存放这些资源文件的中央仓库。
在本系列之后的文章里,我们将学习图像和用户接口资源。
在这个介绍性的应用程序里,我们需要的只是一个包含了两个字符串的简单资源文件。
我们将加载该文件,并在运行阶段显示出来。
点击BREW程序组中的“资源编辑器”,运行BREW资源编辑器。
图6显示的是输入了两个字符串后的资源编辑器。
初始的,这个对话框右边的面板是空的。
图7你必须将生成的“helloBREW_res.h”文件拷到“...\yourBREWdir\examples\hel loBREW”目录下,并且用#include语句在“helloBREW.c”文件中引用。
将“helloBREW.bar”文件拷到“...\yourBRE Wdir\Examples\en\256Color\”下。
在模拟器上运行的时候,helloBREW应用程序将以“依据需要”为基础从“helloBREW.bar”中访问字符串资源。
在一个话机上,至少在大多数的不是太普通的情况下,一个应用不会需要并发地访问所有资源。
这样,大的字符串、图像和用户接口元素可以转移到话机的内嵌文件系统(EFS)而不是放在非常昂贵的RAM里。
另外,资源文件的概念使得应用国际化的过程也变得比较简单。
总结在这篇文章里,我们介绍了3种重要的BREW SDK tools:BREW应用程序向导,BREW MIF编辑器,BREW资源编辑器。
BREW应用程序向导创建了可以作为我们的BREW项目基础的框架。
BREW MIF编辑器创建包括了项目的基本信息的模块信息文件(.mif),其中包括应用程序的Unique class ID、应用类型以及三个图标对应的图象文件。
BREW资源编辑器用于创建应用程序资源。
这些资源将被编译到BREW小程序资源文件(.bar)文件中,当应用程序有请求时这个文件将为其提供资源。
下一次,我们将对应用程序向导生成的“helloBREW.c”文件进行处理,加入我们自己的代码以实现简单的功能,并且用BREW模拟器运行这个应用程序。
同时我们还将看到如何用Visual C++结合BREW模拟器去调试一个BREW的应用程序。
BREW™SDK入门篇(二)2004-03-11 15:08:26第二部分?C 在模拟器上运行“Hello BREW”在跟随本文学习相关知识点之前,你需要以下环境:1.Microsoft Visual C++ 6.0 (或更高版本)2.1.1版的BREW SDK.要了解系统最低要求,和获得更细节的资料,SDK的安装指导,请查看SDK 1.1的README文件。
注意,在这里我假设你已经读过了本系列中之前的一篇文章,“什么是BREW”以及本系列的前一篇文章“第一部分-预备知识”。
我进一步假设你已经创建了一个模块信息文件(helloBREW.mif)和一个BREWx小程序资源文件(helloBREW.bar)并且分别将他们拷贝到了“...yourBRE Wdir\Examples\mif\256Color\”和“...yourBREWdir\Examples\en \256Color\”两个目录。
同时,在“...yourBREWdir\Examples\helloBREW\”目录必须有用BREW资源编辑器生成的helloBREW_res.h文件,用BREW应用程序向导创建的应用程序源文件(helloBREW.c)。
如果你需要了解更多,可以阅读上面提到的第一部分,或者阅读SDK附带的文档。
在这个例程中,你需要知道文件名是非常重要的。
特别的,应用程序目录和模块信息文件(.mif)必须目标.dll文件名字相同(也就是前缀相同)。