BREW SDK入门篇(一)

Elizabeth Post at 2006/3/13 16:03:00

第一部分 -  预备知识

在跟随本文学习相关知识点之前,你需要以下环境:

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是它的截图。以后的文章里我们会介绍相关界面,将详细讨论这里提到的优先级。

图2

MIF 编辑器

在向导的第二步,有一个“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。点击“生成”按钮,并在接下来的确认对话框中点击“是”以确定生成本地ClassID。

此时,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的IImage接口的图像尺寸仅受限于设备物理屏幕的尺寸。不同手机有不同的屏幕尺寸和最大图像尺寸。认证的BREW开发者可以在BREW外联网上获得详细的手机规格说明。要了解如何才能成为BREW认证开发者,请参考Qualcomm® BREW 网站.

题外话,如果你想在模拟器或者手机上显示动画,你可以创建更大的图片。在MIF编辑器里,你可以很简单地创建一个大图片,这个图片由多张水平方向排列、大小一致的帧组成。在任何时候,动画只显示1帧,这样,这张位图的总宽度可能大于设备的显示宽度。需要注意的是,为了让动画很好显示,位图的宽度必须正好是它高度的几倍。

现在我们已经创建了一个基本的模块信息文件,可以关闭MIF编辑器继续我们的探险。记住以前提过的要点,.mif文件必须跟应用程序的.dll文件同名。注意刚刚创建的“helloBREW.mif”文件必须拷贝至...\yourBREWdir\Examples\MIF\256Color\目录,这样AEE才能找到并且适当地初始化hellBREW应用程序。下一次,当我们在BREW应用程序向导生成的源代码中添加自己的代码并让应用在BREW模拟器上运行时,这一点变得尤其重要。

资源编辑器

大多数的应用程序需要字符串和图像资源,不要涉及一些由不同屏幕组成的用户接口。BREW的小程序资源文件(BREW Applet Resource )(.bar)就象你的应用程序存放这些资源文件的中央仓库。在本系列之后的文章里,我们将学习图像和用户接口资源。在这个介绍性的应用程序里,我们需要的只是一个包含了两个字符串的简单资源文件。我们将加载该文件,并在运行阶段显示出来。点击BREW程序组中的“资源编辑器”,运行BREW资源编辑器。图6显示的是输入了两个字符串后的资源编辑器。初始的,这个对话框右边的面板是空的。

图6

要熟悉资源编辑器的所有细节,可以阅读SDK文档里的相关章节。现在右键点击左边面板,并选择“新建字符串…”,或者简单敲键盘快捷方式,ALT-S.将出现图7所示的对话框。按照图6中的内容填入对话框中的必填项。填完后,选择“文件”>“保存”或者在工具条上点击磁盘图标将BREW资源载体文件(BREW Resource Intermediate)(.bri)保存为“helloBREW.bri”。注意.bri文件都要用资源编辑器打开,进行修改。只要你创建或者编辑了应用程序的资源,就必须在完成后点击工具栏中的蓝色“Q”字样。这个操作将产生两个文件:“helloBREW.bar”和“helloBREW_res.h”。

图7

你必须将生成的“helloBREW_res.h”文件拷到“...\yourBREWdir\examples\helloBREW”目录下,并且用#include语句在“helloBREW.c”文件中引用。将“helloBREW.bar”文件拷到“...\yourBREWdir\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的应用程序。

已有 0 位网友发表了看法