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介面

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

  • 相关阅读:
    extract numberic from text
    str.rfind("//")
    solr入门心得
    深挖洞,广积粮,缓称王
    ubuntu 查看文件夹大小

    关于托运
    iconv转换文件编码
    小毛小毛你的心态
    广积粮,高筑墙,缓称王
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4910642.html
Copyright © 2011-2022 走看看