zoukankan      html  css  js  c++  java
  • android插件技术-apkplug于OSGI服务基础-08

    我们提供 apkplug 下OSGI使用demo 源代码托管地址为 http://git.oschina.net/plug/OSGIService

    一 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(),//服务名称  一般为接口类名
    4      my,                         //服务详细实现类
    5      null);

    2.服务查询

            android Service     

    1 Intent intent=new Intent(Context,Service.class);
    2 Context.bindService(intent, new ServiceConnection())
    3 ...

           OSGI Service    


    01 //利用插件上下文BundleContext查询服务
    02  ServiceReference ref  =  context.getServiceReference(Service.class.getName());
    03         if  (ref  !=   null ) {
    04             //查找到服务
    05             Service service  =  (Service) context.getService(ref);
    06              if  (service  !=   null ) {
    07                       //调用服务接口
    08                  service.sayHello(imp);
    09              }
    10              //注销服务
    11              context.ungetService(ref);
    12         }


    三    OSGI服务特点

            OSGI服务是暂态的插件可能随时被关闭或卸载,所以我们每次在使用服务的时候都最好先查询服务是否还存在。

    四    OSGI服务注意事项

           使用OSGI服务时应注意服务接口java类的一致性,服务者与消费者应使用同样的java接口(类载入器同样),否则可能出现在是时候服务查询类型转换异常。在一般情况下,我们必须提供的服务java介面

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    怎么过滤JSON数组中反斜杠“”,反序列化
    ibatis教学实例
    jQuery给input CheckBox的值查询的一致就选中
    jQuery给CheckBox全选与不全选
    ThinkPHP5.1完全开发手册.CHM离线版下载
    4.2 执行环境及作用域【JavaScript高级程序设计第三版】
    21.1 XMLHttpRequest 对象【JavaScript高级程序设计第三版】
    13.4.3 鼠标与滚轮事件【JavaScript高级程序设计第三版】
    13.6 模拟事件【JavaScript高级程序设计第三版】
    14.5 富文本编辑【JavaScript高级程序设计第三版】
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4910642.html
Copyright © 2011-2022 走看看