"这篇文档介绍了前一代架构中的EMMI Service,包括Service的性质、与Applet的交互方式以及Service Wrapper API的引入,旨在减少Applet开发者的复杂度。"
EMMI Services架构概观:
EMMI Service是无用户界面的服务,它在手机后台运行,通过API为多个不同的应用程序(AP)或服务提供功能。这些Service通常在手机启动时启动,其生命周期比Applet更长。在MMI Task上,可以同时运行多个Service,但对于Applet而言,它们以堆栈的形式存在,因此在同一时间只有一个Applet是活跃的。当一个Applet被用户关闭时,分配给它的内存会被释放,但Service仍然会继续存在,以便其他依赖该Service的应用仍能正常工作。
前一代架构(XMMI):
在早期的架构中,Applet需要显式创建和释放Service实例。Service接收到来自Applet的请求,并通过Callback和Events两种方式响应。Applet需要向Service注册感兴趣的事件,然后Service会在特定时刻触发这些事件,向Applet发送通知。Applets的开发者必须编写特定的代码来处理Service发出的事件。这种交互方式增加了开发的复杂性。
Service Wrapper API的引入:
为了简化Applet开发,EMMI引入了Service Wrapper API。在这个API层中,Service实例会自动创建并在适当的时候自动释放。这样做的好处是降低了Applet开发者的工作负担,他们不再需要关心Service实例的生命周期管理。Callback成为了Service被动响应请求和主动发送指示的唯一方式。
使用Service Wrapper后的概念性架构:
在引入Service Wrapper API后,Applet与Service之间的交互变得更加简洁。Applet直接与Wrapper API通信,发送请求,然后通过Callback接收响应。这种方式减少了开发者需要处理的底层细节,使得Applet的开发更加专注于业务逻辑。
总结:
前一代的EMMI Service架构强调了Service与Applet之间通过Callback和Events的交互,以及Service实例的显式管理。随着Service Wrapper API的引入,这些复杂性得到了缓解,Callback成为了主要的通信机制,同时Service的自动创建和释放简化了开发流程。这一变化提高了效率,使Applet开发者能更专注于应用程序的功能实现,而不是底层服务的管理。