Hello Brew!
Hello Brew!
由 cobra 于 周三, 2008-09-10 11:06 提交。看了很多天BREW的教程,今天发一个BREW中最简单的实例Hello Brew。要想成功编译和运行这个例子,需要如下软件。
- Visual C++ 6.0
- BREW SDK
- BREW SDK TOOLS
BREW SDK TOOLS提供了一个VC环境下的插件,可以生成BREW相应的骨架代码。安装顺序先安装VC6,然后是SDK,最后是SDK TOOLS。
完毕后进入VC,新建一个工程,工程类型选择BREW Application Wizard,然后在Project name中填写HelloBrew,单击OK。
接下来我们需要选择BREW程序需要用到的功能,这些功能包括File,Network,Database, TAPI/SMS,Sound,选择这些相应的功能后,BREW Application Wizard会在生成的代码中增加相对应的头文件。
接下来一步是创建mif文件,每一个Brew应用程序都需要一个mif文件,这个文件是BREW应用程序的入口,在mif文件中包括应用程序的表述信息如ClassID,图标,权限,作者等等。我们可以在下一个窗口中启动mif Editor。
在Mif Editor中点击新建小程序按钮,创建HelloBrew需要的应用程序。
单击新建小程序按钮后,我们需要创建ClassID。每一个BREW应用程序都会有一个唯一ClassID, ClassID是由高通公司统一负责分配的,我们需要向高通公司申请,申请之前我们需要成为高通认证BREW开发者,这个资格在国内可以向联通博路提交申请,既可以免费获得。若是还没有成为认证的BREW开发者,我们可以在选择本地手工输入一个ClassID,但是程序正式提交之前必须使用高通公司分配的ClassID,否则你的应用程序无法提交测试。
我这里使用从BREW Web站点获取ClassID的方式,在名称中填写HelloBrew,选择从Brew web站点,点击生成后,系统会自动启动浏览器,并打开ClassID Generator的页面,输入BREW开发者用户名密码后,进入如下页面:
输入ClassName,点击Submit,会提示下载一个名为HELLOBREW.BID的文件,我们将该文件保存在刚刚创建的VC工程目录中备用。然后回到Mif Editor窗口,单击搜索BID文件按钮,在弹出窗口中选择刚刚下载的BID文件。然后,在名称中输入HelloBrew,然后保存,文件名为HelloBrew,这里要注意文件名字要和工程名一致,这样在模拟器中才可以正常运行。退出Mif Editor,回到BREW Application Wizard,然后单击Finish。这时Wizard会自动创建骨架代码。
我打开HelloBrew.c文件,添加如下代码:
#include “HELLOBREW.bid”
typedef struct hellobrew_s
{
AEEApplet a;
} hellobrew_t;
这个文件中定义了ClassID。然后再找到
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
*ppObj = NULL;
if(ClsId == AEECLSID_HELLOBREW){
if(AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell,po,(IApplet**)ppObj,
(AEEHANDLER)HelloBrew_HandleEvent,NULL)
== TRUE)
{
// Add your code here .....
return (AEE_SUCCESS);
}
}
return (EFAILED);
}
将其修改为
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
*ppObj = NULL;
if(ClsId == AEECLSID_HELLOBREW){
if(AEEApplet_New(sizeof(hellobrew_t), ClsId, pIShell,po,(IApplet**)ppObj,
(AEEHANDLER)HelloBrew_HandleEvent,NULL)
== TRUE)
{
// Add your code here .....
return (AEE_SUCCESS);
}
}
return (EFAILED);
}
在HelloWorld_HandleEvent添加如下黑体字代码,
static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
hellobrew_t *pApp = (hellobrew_t *)pi;
AEEApplet *pMe = &pApp->a;
AECHAR szBuf[] = {'h','e','l','l','o',' ','b', 'r','e', 'w', '\0'};
switch (eCode)
{
case EVT_APP_START:
IDISPLAY_ClearScreen(pMe->m_pIDisplay);
IDISPLAY_DrawText(pMe->m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, 0,0,0,IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
IDISPLAY_Update(pMe->m_pIDisplay);
return(TRUE);
case EVT_APP_STOP:
return TRUE;
default:
break;
}
return FALSE;
}
这样HelloBrew的程序就已经修改完成编译无错后,需要在模拟器中运行该程序。编译后会生成hellobrew.dll,这个就是我们的程序,接下来我们需要在将hellobrew.dll复制到一个名为HelloBrew的目录中,并将刚才生成的mif文件复制到和HelloBrew目录同级的目录中,文件结构如下:
│ HelloBrew.mif
│
└─HelloBrew
HelloBrew.dll
启动Brew模拟器,在工具菜单中选择设置,然后选择mif所在的目录,单击确定,选择HelloBrew启动应用程序,如下图:
至此我们第一个Brew应用程序创建完成。
你好