BREW MIF编辑器

来源:互联网 发布:java重载函数是什么 编辑:程序博客网 时间:2024/05/17 23:53

BREW MIF编辑器


每一个BREW应用程序(准确地说是每一个模块)都有对应的MIF文件,用来描述该模块中每一个应用程序的信息,如Class ID、图标、名称等等,MIF编辑器就是用来编辑MIF文件中这些内容的。在BREW MIF编辑器中可以创建MFX和MIF文件,MFX是开发 MIF 过程中使用的XML格式的中间文件。MIF是一种从MFX文件编译而成的特殊类型的BREW资源文件,其中包含有关BREW模块 (MOD)文件内容的信息。MIF创建之后,将以二进制形式提交并加载到目标设备。在模拟器上运行应用程序时,也可以使用MIF。大多数情况下,我们只需要使用Applets和General两个选项卡。Applets选项卡如图7.3所示。
       通过这个Applets选项卡,我们可以在模块中增加应用程序,包括设置通知信息、设置标记(Flags)、以及显示信息等。添加一个Applet信息时,需要指定Class ID所在的BID文件。BID文件可以本地生成或者从高通的网站上获得。由于每个模块中可以包含多个应用程序,因此需要多个BID文件,并且这些BID文件中包含的Class ID不能够相同。一旦Applet的入口被创建,那我们就可以编辑这个Applet的信息了。我们可以设置这个应用的图标,图标分为大、中、小三种,分别对应了在应用程序管理器中的不同菜单模式下的显示图标。BREW模拟器默认的界面就是应用程序管理器了,当我们设置了这些图标之后我们可以通过改变设置而看到不同的画面。指定的图片格式可以示BMP、PNG或JPEG。我们还可以指定应用程序的类型,如果我们选择的类型是“Hidden”,那么这个应用程序的图标将不会出现在应用程序管理器中。如果我们使用BREW开发设备的用户界面的话,那么这些应用程序的类型都应改选择“Hidden”,以使他们不会在设备上的应用程序管理器中显示出来。
图7.3Applets选项卡
       我们还可以选择高级设置按钮,进入Applet高级设置对话框。在这个对话框中我们可以设置应用程序的标志(Flags)、接收的通知事件和显示信息等。其中各种标志的描述如下:
标志
描述
Popup
此项标志描述当载入应用程序时不清空设备屏幕。如果没有选中此选项,那么当载入应用程序时将首先清空当前的屏幕。如果我们的应用程序在启动时出现白屏,那么可以选择此项解决问题。
Screensaver
此项表示当前的应用程序属于一个屏幕保护的应用程序,这将导致此应用程序出现在屏幕保护程序的列表中。
Phone
此标志表示将BREW设定的关闭全部应用程序的按键事件(通常是End键)像其他正常的按键一样传递给此应用程序(仅在此应用程序处于激活状态时)。此标志只有在应用程序具有系统级别的访问权限时才有效。
Show On Config Menu
此选项表示是否将此应用程序在BREW设置菜单中显示,显示的内容是在下面的“Menu string”输入框中输入的内容。
Show On Hidden Config Menu
此选项表示是否将此应用程序在BREW隐藏设置菜单中显示,显示的内容是在下面的“Menu string”输入框中输入的内容。
       有些BREW设备支持配置或设置菜单,允许设备用户为每个BREW小程序设置首选项。 例如,游戏用户可以从首选菜单中选择游戏难度等级。我们可以在MIF中指定配置菜单上是否显示小程序。如果我们的小程序包括在这些菜单中,从配置菜单或隐藏配置菜单中选择时,就向它发送EVT_APP_CONFIG或EVT_APP_HIDDEN_CONFIG事件。小程序收到这些事件后,应该显示一个设置菜单以便于用户设置参数。模拟器不支持这些配置菜单。这些配置菜单目前很少使用,因此很少有应用程序会选择这个选项。
       使用高级设置对话框还可以设置应用程序接收的通知事件。通知的来源有AEECLSID_NET、AEECLSID_SHELL和AEECLSID_TAPI三个类。在“掩码”字段的下拉列表中选择掩码,可以确定给类发送哪些通知。此下拉列表中的选项将随上面所选的系统类而变化。如果通知是由非BREW标准类提供的,则可以选择自定义,然后输入Class ID。在“掩码”字段中,输入掩码的编号,可以确定给类发送哪些通知。掩码0xFFFFFFFF指定发送全部通知;掩码0x00000000则指定不发送通知。通知及可以在MIF文件中指定,也可以使用BREW接口来指定,在后面的Shell功能介绍里会有介绍。
       每一个应用程序还可以设置显示的信息,通常不必使用这些内容,因此这里就不做详细的介绍了,有兴趣的读者可以参考BREW的帮助文档。
       另一个常用的选项卡就是General选项卡了,General选项卡如图7.4所示。
图7.4 General选项卡
       General选项卡中可以添加模块的版权和版本信息,以及访问文件系统的限制和MIF文件中的字符串格式。这些内容都是模块的常规信息。最大文件数可以输入从7到65535之间的数字,代表指定模块可以创建文件的总数, 它包括在模块目录以及共享目录中创建的文件和目录;最大空间中可以指定的最小空间为20,480字节,最大为4294967294字节,代表模块可以占用的文件空间总量,它包括模块目录和共享目录中的文件空间。字符串格式是指存储在此MIF文件中的字符串(如此选项卡中的作者名称和Applets选项卡中的Applet名称等)编码格式。关于编码格式我们会在后面的章节中有详细说明。
       Extensions选项卡中是设置此模块中导出类的地方。导出类是模块中所有非Applet的Class ID。同BREW MIF编辑器窗口中的“Applets”选项卡一样,我们可以从BREW Class ID网页,或通过选择计算机上现有的BID文件获取非Applet类的ClassID。MIF可以使用两种类型的导出类:非保护和受保护。非保护导出类可供给任何应用程序随时使用。受保护导出类则必须明确声明为该MIF的外部依存(也就是在该MIF文件的Dependencies选项卡中增加使用该受保护导出类的类Class ID)。如果将受保护类指定给MIF而没有将其声明为外部依存,则将返回EPRIVLEVEL错误。虽然非保护类没有被明确声明为类的外部依存也可以使用,但这会导致无法跟踪BREW中的“使用模块”,引起此导出类的使用问题。我们可以考虑如下情况,如果使用了此非保护导出类的类,没有声明为此模块的外部依存,那么将有可能发生在使用此非保护导出类的类不知情的情况下删除了导出类所在的模块,从而导致使用此导出类失败。因此,模块必须始终声明受保护类和非保护类的外部依存。
       Extensions选项卡还可以设置导出的MIME类型。导出MIME类型是模块中的非Applet类,执行该类可以处理特定MIME类型的文件(例如SND声音文件和MIDI文件)。对于MIME处理程序类,我们可以指定该类所处理的MIME类型。其它类可以使用IShell接口的 GetHandler函数获取处理程序类的实例,该处理程序类以它处理的MIME类型命名。这个功能就类似于我们在Windows中使用特定的应用程序处理特定文件一样。
       Dependencies选项卡用来设置模块的外部依存。外部依存的含义是依赖或使用此模块的外部Class ID。这里面我们容易进入的一个误区是,认为外部依存是此模块所依赖或使用的其它模块的类,而事实上却是恰恰相反的,因此请各位读者提起十二分精神注意此事。在此选项卡左边是“Available”的Class ID列表,也就是可用的Class ID,但是在这个列表中的Class ID还没有成为此模块的外部依存,我们需要使用“Add”按钮将我们希望作为外部依存的Class ID转移到右边的“Used”列表中。
       Privileges选项卡用来设置模块可以使用各种系统资源的权限,这些权限包括:
名称
描述
File
IFile、IDBMgr、IDatabase和IDBRecord接口的文件和数据库函数。
Network
INetwork和ISocket接口的网络和套接字函数,用以设置TCP和UDP套接字。
Web Access
访问IWeb接口。
TAPI
ITAPI接口中的TAPI函数。
Position Location
IPOSDET_SetGPSConfig、IPOSDET_GetGPSConfig 和 IPOSDET_Get GPSInfo 函数,提供基于GPS的定位信息。ISHELL_GetPosition 函数,提供对设备定位功能的访问。
Access To Ringer Directory
BREW SDK 和手持设备上存储音质文件的目录的写入权限。 在运行 IRINGER_Create() 函数时,将自动创建该目录。
Write Access To Shared Directory
BREW SDK 和手持设备上 <BREW/sdk/examples/Shared> 目录的写入权限。
Access To Sector Information
访问从 IPOSDET_GetSectorInfo API 获取的扇区信息。
Access To Address Book
访问IAddrBook接口
       在“Advanced Privileges”对话框中,可以确定模块是否可以访问某些BREW系统函数,它们仅限运营商和设备制造商使用,BREW 应用程序开发者不能使用。Download,指示可以访问IDownload接口中的函数,这些函数用于从运营商网站下载BREW应用程序。All/System,指示可以访问所有 BREW 系统函数。
       Access Control选项卡用来设置模块的ACL(Access Control Level),关于ACL的详细信息可以参考第十章数据存储功能中关于ACL的描述。License选项卡用来设置该模块的许可证选项,此选项仅在进行应用程序测试的时候才有效,因此大多数情况下我们可以不予理会。
       上面的各个选项卡填写完毕之后,我们就可以保存这个MIF文件了。保存时可以选择保存的类型:v1、v2、MFX文件。v1版本用于BREW3.0之前的BREW平台,v2版本用于BREW3.0版本及其之后的版本,我们可以根据实际情况保存不同的格式。MFX文件最终也需要编译成上面的两种二进制形式才能使用。

原创粉丝点击