android插件技术-apkplug于OSGI服务基础-08
转载
一 OSGI与android Service 异同点
OSGI服务与android Service概念差点儿相同也是Service ,Client 关系。
android Service接口 --service.AIDL
OSGI接口 --java interface
所以android 进程间通信Service仅仅能传递序列化过的数据 而OSGI服务能够传递不论什么java对象。
二 OSGI与android Service注冊/查询方式对照
1.服务注冊
android Service
1 | Intent intent= new Intent(Context,Service. class ); |
2 | Context.startService(intent); |
OSGI Service
1 | BundleContext context; |
2 | ServiceRegistration m_reg = context.registerService( |
3 | sayHelloImp. class .getName(), |
2.服务查询
android Service
1 | Intent intent= new Intent(Context,Service. class ); |
2 | Context.bindService(intent, new ServiceConnection()) |
OSGI Service
02 | ServiceReference ref = context.getServiceReference(Service. class .getName()); |
03 | if (ref != null ) { |
05 | Service service = (Service) context.getService(ref); |
06 | if (service != null ) { |
08 | service.sayHello(imp); |
11 | context.ungetService(ref); |
三 OSGI服务特点
OSGI服务是暂态的插件可能随时被关闭或卸载,所以我们每次在使用服务的时候都最好先查询服务是否还存在。
四 OSGI服务注意事项
使用OSGI服务时应注意服务接口java类的一致性,服务者与消费者应使用同样的java接口(类载入器同样),否则可能出现在是时候服务查询类型转换异常。在一般情况下,我们必须提供的服务java介面
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。