BREW中重要的接口以及其典型使用方式
nicefuture
东方欲晓也
展开
-
共享数据的高级技巧
<br /><br />在BREW3.1之前,共享数据的典型方式是使用Shared文件(位于BREW Shared文件夹下)或者使用IClipBoard。BREW3.1之后,共享数据的灵活性得到了增加。主要是相对之前增加了IFIFO,以及ACLs的方式。<br />典型的使用方式:<br />1. 使用IFIFO共享数据:该方式采用FIFO的方式共享数据,共享的数据保存在系统Buffer中,当使用它的客户都Release后,BREW自动回收该系统内存。FIFO的命名基于fs模式,只原创 2010-06-30 09:53:00 · 387 阅读 · 0 评论 -
Alarm操作
<br /><br />Alarm的通知机制本质是Event机制,和Timer的Callback机制有本质区别。当Alarm到期时,BREW发送EVT_Alarm事件通知App,如果App不在运行,则先加载App,再处理EVT_Alarm。其本质和BREW的任何事件投递一样。<br />典型的用法:<br />1.App调用IShell_SetAlarm设置一个Alarm,指定到期的时间,同时关联一个UserCode,该UserCode唯一的标识一个Alarm。<br />2.当Alarm到期后,BREW发原创 2010-06-30 09:52:00 · 750 阅读 · 0 评论 -
事件操作
<br /><br />对于系统级的事件,不得由App直接发送。所有事件的投递,当应用不在运行时,都会加载应用并执行。<br />IShell_SendEvent进行同步,阻塞的事件投递,目标应用由CLSID 参数决定。该函数内部会直接调用目标应用的HandleEvent。函数的返回值表征该事件是否被Consume(处理,并Return TRUE)了。当使用该函数投递指针(包括接口)时,接收方必须对其负责(Copy Buffer,对接口引用计数加1)。<br />IShell_PostEvent:进原创 2010-06-30 09:54:00 · 677 阅读 · 0 评论 -
BREW Callback
<br /><br />到目前为止,BREW(不包括bmp)的所有应用都运行于单一的Task(进程或者线程),所有应用间不具有抢占的特性。各应用的运行是基于协作式的。所谓的协作式,就是应用主动的让度CPU供其他App使用,让度的方式就是BREW的AEECallback机制。<br />请注意,AEECallback实例必须是长期有效的,不得在堆栈或者寄存器中分配(临时变量),因为BREW Callback的运行是异步的,并且BREW内核不会对AEECallback实例进行备份。<br />典型的使用为:<b原创 2010-06-30 09:55:00 · 620 阅读 · 0 评论 -
BREW Callback的高级操作
<br /><br />BREW3.1中,丰富了Callback的使用。最主要的是,增加了IThread接口并提供了丰富的系统通知机制。<br />IThread:BREW中的IThread不是基于操作系统层,而是基于应用层实现。所以本质上不具有真正线程的抢占和调度特性。BREW的IThread基于AEECallback。由BREW内核使用AEECallback的方式自动调度。使用IThread的好处是,开发者可以把一系列操作做成“同步”的方式,只需要在该同步的操作中,应用显式的调用IThread_Susp原创 2010-06-30 09:56:00 · 539 阅读 · 0 评论 -
共享数据方式
<br /><br />IClipBoard接口可以被用来在多个BREW应用间共享数据,即便应用退出了。这是因为,IClipBoard的生命周期不和任何应用绑定。<br />典型的使用IClipBoard共享数据的方式如下:<br />1.复制数据:调用IClipBoard_SetData,将应用的数据Copy到系统Buffer中,这样被复制的数据将永远有效,即便应用退出。<br />2.粘贴数据:调用IClipBoard_GetData,将系统Buffer中的数据,Copy到应用Buffer中。<br /原创 2010-06-30 09:53:00 · 1353 阅读 · 0 评论 -
文件操作
<br /><br />BREW中的直接文件操作使用IFileMgr和IFile接口。需要注意的是,IFileMgr接口实例通过ISHELL_CreateInstance获得,而IFile接口实例通过IFileMgr_OpenFile返回得到。<br />典型的利用IFileMgr/IFile的操作为:<br />1、创建IFileMgr接口实例<br />2、利用IFileMgr相关接口函数进行创建目录,删除目录,查找文件是否存在,重命名文件,删除文件,枚举文件,获取文件信息,获取可用EFS空间等<br原创 2010-06-30 09:51:00 · 456 阅读 · 0 评论 -
Alarm高级操作
<br /><br />BREW3.1.5中,加强了Alarm的功能,主要是新增了IAlarmMgr接口,并新增了IShell_SuspendAlarm,IShell_ResumeAlarm接口函数。<br />典型的高级操作如下:<br />1. 使用IShell接口查询,Suspend,Resume Alarm:<br />a. 可以调用IShell_ActiveAlarm来查询是否有当前应用设置的处于Pending(Active)的Alarm<br />原创 2010-06-30 09:52:00 · 689 阅读 · 0 评论