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

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

  • 相关阅读:
    WSGI应用程序示例
    UDP 网络程序-发送_接收数据
    【C语言】定义一个函数,求长方体的体积
    【C语言】输入三个正整数a,b,c,求最大值,要求定义一个计算最大值的函数max(a,b),返回a,b的值
    人工智能发展史-从图灵测试到大数据
    漫画 |《程序员十二时辰》,内容过于真实 ...
    漫画 | 外行对程序员误会有多深!
    爬虫究竟是合法还是违法的?
    【C语言】用指针作为形参完成数据的升序排列
    【C语言】数组名作函数参数,完成数据的升序排列
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4910642.html
Copyright © 2011-2022 走看看