帮助函数就是一种典型的其他服务。在BREW 的应用程序中,不能直接调用标准C库函数,而是要借助手函数来实现相应的功能。帮助函数实现了标准的ANSI C 库函数,在应用程序中不能调用标准的C库函数,而是调用帮助函数API代替之。应用程序可直接调用帮助函数,而不需要接口指针减少了不必要的对标准C类库的链接,减少了动态应用程序中的不必要的静态数据,使得应用程序可移植。例如,在BREW 运行环境中动态开辟内存时只能使用助手函数MALLOC()而不能是标准C库函数malloc( ):释放内存时则只能调用FRE以等。在字符串处理方面,BREW提供了STRCPY(), STRCAT()和STRDUP()等助手函数。BREW 应用程序中的浮点运算不能直接使用+、一、X和/等运算符,而是要借助FADD ()、FSUB ()、FMUL()和FDIV ()等助手函数实现浮点数的运算。
BREW中的数据结构有四种主要类型:
结构和联合:一些BREW函数使用结构指针作为输入参数。要使用此类函数,需提供一个结构实例,并在调用函数时传递指向该实例的指针。一些BREW函数则可能返回结构指针作为输出。
枚举类型:有的BREW变量和结构成员从C typedef枚举结构所定义的有限集中取值。例如,文本绘制函数所支持的字体类型即由枚举类型定义指定。
常量定义:BREW函数使用的常量是由#defin。语句定义的宏。一种常见用法是定义一组位掩码,以测试和设置位向量变量中的位值。每个控件定义一组位掩码常量,用于测试和设置各种控件属性值。
宏定义:BREW 中把大量的函数指针,接口的函数调用定义为宏或者是typedef。
此外,BREW还使用typedef定义了许多属于BREW用到的基本类型,比如说ints,int16,int32,uints,uint16,uint32等typedef类型,其实就是C语言中的8位,16位,32位的有符号或者无符号数。这里需要特别指出的是,C语言中没有boolean类型,BREW中使用typedef定义了unsigned char类型作为boolean类型,取值是宏定义TRUE,FALSE。
这里将与手机相关的特色服务也放在其他服务之中,例如IBacklight实现对手机中背光显示的支持,IBattery和IBatterNotifier相结合可以得到手机中电源的状态信息等。