BREW概述
BREW(BinaryRuntimeEnvironmentforWireless,无线二进制运行环境),是高通公司推出CDMA网络“无线互联网发射平台”上增值业务开发运行的基本平台(该增值业务中国联通称之为“神奇宝典”)。它提供一个高效、低成本、可扩展和熟悉的应用程序执行环境(AEE),着重开发可无缝植入任何实际手持设备的应用程序。现在,BREW提供的功能环境就好像PC机上的操作系统一样,可以通过服务提供商下载指定类型的应用程序或游戏来使用。
BREW提供了一套应用程序接口(API),制造商和开发人员可以随时对运行环境进行扩展,提供应用程序需要的各种附加性能模块,如“无线互联网发射平台”中包含的多媒体、多种连接方式、位置服务、用户界面、网络等功能套件。
BREWSDK的安装
要开发基于BREW平台的应用,首先要安装BREWSDK。
下载SDK:官方下载地址http://brew.qualcomm.com/brew/zh/developer/resources/ds/kb/46.html
安装:前面照提示安装即可,临安装结束会问是否需要更新环境变量,一定选择是,否则手动更新会很麻烦的。
安装结束,可以开始开发工作了。
第一个BREW应用程序
终于要动手实践第一个BREW应用了,好激动哦~
首先打开VC,新建工程(不要说这个你都不会),看见“BREWApplicationWizard”没?就是它了!随便起个名儿,就叫BrewApp吧,放哪个路径下呢?关于路径的讲究后面说,这次先放到BREW安装目录的EXAMPLES下去,也就是...\BREWSDKV2.0.0ZH\EXAMPLES\BrewApp。OK,下一步;
问你需要那些额外的支持不?咱先来点简单的,啥都不要了~直接下一步;
哈,这步简单,只有一个“MIFEditor”按钮,点它~瞧见没?MIF编辑器出来了!干吗用的?先不告诉你,照我说的做就行!
点“新建小程序”按钮,新建一个叫BrewApp的本地小程序吧,ID自己想一个一般别人不会用到的填进去就行,看好了可是十六进制的哦~生成它,保存到我们的工程目录下...\BREWSDKV2.0.0ZH\EXAMPLES\BrewApp,名字就叫BrewApp.bid好了!
看见没,保存完后你自己随便想的程序ID就自动出现在MIF编辑器中了,其它几个空:名称BrewApp,类型随意,图标暂时不要了,空那就行。填完Ctrl+S保存,这次路径可不是工程目录下,这个可跟工程是一个等级的,也就是...\BREWSDKV2.0.0ZH\EXAMPLES下了!为什么?记着就行了!名字就叫BrewApp.mif,这个一定要跟工程同名。退出MIF编辑器。
做完mif文件,我们的工程就完成了,点finish即可。
好了,这下编译一下试试看!什么?出错了?什么错?AEECLSID_BREWAPP找不到?嘿嘿,这下我们刚才忙活那么久做bid文件总算是用上了。
#include"BrewApp.bid"
再编译,通过了吧~
不能运行?我好像还没教你运行吧,那么现在开始:选择VC主菜单的工程->设置,在Link选项卡中看看BrewApp.dll前有没有多余的东东。有?删了!再看Debug选项卡的四个文本框中的第一个是不是空的。空的?那可不能运行,点右边那个按钮,到BREW的安装目录下的bin目录下找找BREW_Eulator.exe,就是它了,选择。设置完成,点击“OK”退出。现在可以运行了!
当Eulator运行起来后,用你的鼠标点点手机的方向键,别的咱先不管,找找BrewApp,还是自己的孩子亲啊!看见没,你做的东西已经有了!点OK键没反应?当然了,向导就给了你个空壳,你得给自己孩子点血肉啊~算了,人家都“Helloworld”呢,我就教你个“HelloMM”好了。
在工程里找找BrewApp_HandleEvent这个函数,修改如下:
staticbooleanBrewApp_HandleEvent(IApplet*pi,AEEEventeCode,uint16wParam,uint32dwParam)
{
AEEApplet*pMe=(AEEApplet*)pi;
AECHARszText[]={''H'',''e'',''l'',''l'',''o'','','',''M'',''M'',''\0''};
switch(eCode)
{
caseEVT_APP_START:
IDISPLAY_DrawText(pMe->m_pIDisplay,//Displayinstance
AEE_FONT_BOLD,//UseBOLDfont
szText,//Text-Normallycomesfromresource
-1,//-1=Usefullstringlength
0,//Ignored-IDF_ALIGN_CENTER
0,//Ignored-IDF_ALIGN_MIDDLE
NULL,//Noclipping
IDF_ALIGN_CENTER|IDF_ALIGN_MIDDLE);
IDISPLAY_Update(pMe->m_pIDisplay);
return(TRUE);
caseEVT_APP_STOP:
//Addyourcodehere.....
returnTRUE;
default:
break;
}
returnFALSE;
}
这回运行看看,“Hello,MM”看到没?耶,这就是我们的第一个BREWAPP了!关于IDISPLAY_DrawText的具体用法可以查阅联机帮助BREWAPIReference,程序结构对于有WindowsSDK编程经验的朋友应该是很熟悉的了,关于MIFEditor的详细用法参见联机帮助BREWOnlineHelp。