EMMI Service详解:功能与API应用

需积分: 10 2 下载量 89 浏览量 更新于2024-08-24 收藏 1.11MB PPT 举报
"EMMI Service 是一款针对Mstar平台的服务,用于管理设备的各种功能,如USB、电池、配件、GPS、传感器以及运动检测等。它提供了API接口供其他应用程序或服务调用,实现后台运行并维持较长的生命周期。EMMI Service的架构相比前一代(XMMI)更简化,降低了Applet开发者的工作复杂度,通过ServiceWrapper API自动管理Service实例的创建和释放,并主要通过Callback机制进行通信。" EMMI Service架构概览 EMMI Service 是一种无用户界面的服务,它在手机后台运行,通过其API接口为多个不同的应用程序(AP)或服务提供功能。这种服务通常在手机启动时启动,其生命周期比普通应用(Applet)更长。在MMITask上,可以同时运行多个Service,而Applet则以堆栈结构运行,仅能有一个Applet处于活动状态。当一个Applet被关闭时,其分配的内存会被释放,但Service通常会继续存在,例如PhoneBookService即使在电话簿关闭后仍会保持运行,因为其他服务如Message Editor AP和CCAP(Call Control)仍需要它。 EMMI Service种类 EMMI Service 包含多种功能模块: 1. USB:负责USB设备的插拔检测和状态通知。 2. BATTERY:提供电池电量状态查询和通知功能。 3. ACCESSORY:监控耳机和其他外围设备的插拔状态。 4. GPS:控制GPS功能的开关,并监听地理定位数据的变化。 5. SENSORMGR (Sensor Manager):管理各种传感器,包括G-Sensor(重力感应器)、光源感应器、电子罗盘和温度感应器。 6. PEDOMETER (Step Counter):使用重力感应器作为计步器服务。 7. MOTION DETECTOR:检测手机的甩动和翻转状态变化,同样依赖于重力感应器。 EMMI Service API使用介绍 EMMI Service相比前一代架构(XMMI)进行了优化。以前,Applets需要显式创建和释放Service实例,并通过Callback和Events与Service交互。而在EMMI Service中,引入了ServiceWrapper API,自动处理Service实例的生命周期,减轻了Applet开发者的负担。Service实例现在在Wrapper API中自动创建并在适当时候释放。通信方式主要转变为Callback,Service被动响应请求并主动发送指示,减少了Applet开发者处理Event的复杂编程需求。 使用ServiceWrapper后的概念性架构更加简洁,Applet通过ServiceWrapper API与Service交互,减少了直接操作Service实例的必要,使得服务的管理和通信过程更为高效和简便。