导航

忆龙2009:BREW平台应用开发入门

Posted on 2010-01-17 10:11  忆龙2009  阅读(173)  评论(0编辑  收藏  举报

 

BREW概述

  BREW(Binary Runtime Environment for Wireless,无线二进制运行环境),是高通公司推出CDMA网络“无线互联网发射平台”上增值业务开发运行的基本平台(该增值业务中国联通称之为“神奇宝典”)。它提供一个高效、低成本、可扩展和熟悉的应用程序执行环境(AEE),着重开发可无缝植入任何实际手持设备的应用程序。现在,BREW提供的功能环境就好像PC机上的操作系统一样,可以通过服务提供商下载指定类型的应用程序或游戏来使用。

  BREW提供了一套应用程序接口(API),制造商和开发人员可以随时对运行环境进行扩展,提供应用程序需要的各种附加性能模块,如“无线互联网发射平台”中包含的多媒体、多种连接方式、位置服务、用户界面、网络等功能套件。

BREW SDK的安装

  要开发基于BREW平台的应用,首先要安装BREW SDK。

  下载SDK:官方下载地址http://brew.qualcomm.com/brew/zh/developer/resources/ds/kb/46.html
  安装:前面照提示安装即可,临安装结束会问是否需要更新环境变量,一定选择是,否则手动更新会很麻烦的。
  安装结束,可以开始开发工作了。

第一个BREW应用程序

  终于要动手实践第一个BREW应用了,好激动哦~

  首先打开VC,新建工程(不要说这个你都不会),看见“BREW Application Wizard”没?就是它了!随便起个名儿,就叫BrewApp吧,放哪个路径下呢?关于路径的讲究后面说,这次先放到BREW安装目录的EXAMPLES下去,也就是...\BREW SDK V2.0.0 ZH\EXAMPLES\BrewApp。OK,下一步;

  问你需要那些额外的支持不?咱先来点简单的,啥都不要了~直接下一步;

  哈,这步简单,只有一个“MIF Editor”按钮,点它~瞧见没?MIF编辑器出来了!干吗用的?先不告诉你,照我说的做就行!

  点“新建小程序”按钮,新建一个叫BrewApp的本地小程序吧,ID自己想一个一般别人不会用到的填进去就行,看好了可是十六进制的哦~生成它,保存到我们的工程目录下...\BREW SDK V2.0.0 ZH\EXAMPLES\BrewApp,名字就叫BrewApp.bid好了!

  看见没,保存完后你自己随便想的程序ID就自动出现在MIF编辑器中了,其它几个空:名称BrewApp,类型随意,图标暂时不要了,空那就行。填完Ctrl+S保存,这次路径可不是工程目录下,这个可跟工程是一个等级的,也就是...\BREW SDK V2.0.0 ZH\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键没反应?当然了,向导就给了你个空壳,你得给自己孩子点血肉啊~算了,人家都“Hello world”呢,我就教你个“Hello MM”好了。

  在工程里找找BrewApp_HandleEvent这个函数,修改如下:

static boolean BrewApp_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)

AEEApplet *pMe = (AEEApplet *)pi;
AECHAR szText[] = {''H'',''e'',''l'',''l'',''o'','','',''M'',''M'',''\0''};
switch (eCode)
{
case EVT_APP_START:                       
   IDISPLAY_DrawText(pMe->m_pIDisplay,     // Display instance
    AEE_FONT_BOLD,        // Use BOLD font
    szText,               // Text - Normally comes from resource
    -1,                   // -1 = Use full string length
    0,                    // Ignored - IDF_ALIGN_CENTER
    0,                    // Ignored - IDF_ALIGN_MIDDLE
    NULL,                 // No clipping
    IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
   IDISPLAY_Update (pMe->m_pIDisplay);
         return(TRUE);
case EVT_APP_STOP:
   // Add your code here .....
   return TRUE;
default:
   break;
}
return FALSE;
}

  这回运行看看,“Hello,MM”看到没?耶,这就是我们的第一个BREW APP了!关于IDISPLAY_DrawText的具体用法可以查阅联机帮助BREW API Reference,程序结构对于有Windows SDK编程经验的朋友应该是很熟悉的了,关于MIF Editor的详细用法参见联机帮助BREW Online Help。

 

IDISPLAY_Update (pMe->m_pIDisplay);
应该是
IDISPLAY_Update (pMe->a.m_pIDisplay);