2019独角兽企业重金招聘Python工程师标准>>>

我们提供 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

Intent intent=new Intent(Context,Service.class);
Context.startService(intent);

OSGI Service

BundleContext context;      //插件上下文
ServiceRegistration m_reg = context.registerService(sayHelloImp.class.getName(),//服务名称  一般为接口类名my,                         //服务具体实现类null);

2.服务查询

android Service

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

OSGI Service

//利用插件上下文BundleContext查询服务ServiceReference ref  =  context.getServiceReference(Service.class.getName());if  (ref  !=   null ) {//查找到服务Service service  =  (Service) context.getService(ref);if  (service  !=   null ) {//调用服务接口service.sayHello(imp); }//注销服务context.ungetService(ref);}

三    OSGI服务特点

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

四    OSGI服务注意事项

使用OSGI服务时应注意服务接口java类的一致性,服务者与消费者应使用相同的java接口(类加载器相同),否则可能出现服务查询时类型强制转换异常。一般情况下我们以服务者提供java接口

转载于:https://my.oschina.net/u/138488/blog/263479

android插件化-apkplug中OSGI服务基本原理-08相关推荐

  1. android插件化-apkplug中以监听方式获取OSGI服务-09

    2019独角兽企业重金招聘Python工程师标准>>> 我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OS ...

  2. android插件化-apkplug框架基本结构-01

    2019独角兽企业重金招聘Python工程师标准>>> 由于框架开发更新频繁的原因一直都没有时间写出框架的基本架构让大家云里雾里的,现在框架已基本稳定和完善,我就抽出时间写写关于ap ...

  3. Android插件化原理和实践 (一) 之 插件化简介和基本原理简述

    1 插件化简介 Android插件化技术是一种这几年间非常火爆的技术,也是只有在中国才流行起来的技术,这几年间每每开发者大会上几乎都会提起关于插件化技术和相关方向.在国内各大互联网公司无不都有自己的插 ...

  4. 【Android 插件化】使用 PluginKiller 帮助应用开发者规避发布的 APK 安装包被作为插件的风险 ( 验证应用是否运行在插件化引擎中 )

    文章目录 前言 一.应用开发者规避 APK 安装包被作为插件 二.检测插件化环境 1.检查 AndroidManifest.xml 清单文件 2.检查 运行时 信息 3.检查生成的目录 4.检查组件 ...

  5. 【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  6. 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “宿主“ 应用中的 Element[] dexElements )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  7. 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “插件包“ 中的 Element[] dexElements )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  8. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  9. Android插件化技术调研

    一.技术背景 Android的插件化技术,目前已经比较成熟,微信.淘宝.携程.360手机助手中都应用到了插件化.插件化技术的特点是无需单独安装apk,即可运行,即插即用,无需升级宿主应用,减少app的 ...

  10. 【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 | 系统路径加载插件 | 用户同意后加载插件 | 隐藏恶意插件 )

    文章目录 一.自定义路径加载插件 二.系统路径加载插件 三.用户同意后加载插件 四.隐藏恶意插件 一.自定义路径加载插件 插件化应用中 , 宿主应用 加载 插件 APK , 需要获取该插件 APK 文 ...

最新文章

  1. 【实用主义】如何用nodejs自动定时发送邮件提醒?
  2. java实习生入职_Java实习生入职测试
  3. 水晶报表错误:bobj is not defined
  4. ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5
  5. 日志 php_高性能的PHP日志系统 SeasLog 使用
  6. MSP432P401R TI Drivers 库函数学习笔记(四)GPIO
  7. 【汇编】汇编程序入门篇
  8. 64位WIN7系统下无法安装驱动/ 有黄色感叹号怎么办?
  9. 代价敏感错误率与代价曲线
  10. IDEA git 切换分支注意事项(好文章!!)
  11. 大疆2022 “拓疆者” 校园招聘
  12. ZLMediaKit webRTC编译
  13. 5g nr,PDSCH/PUSCH,UE如何选择MCS table
  14. CV文章摘要中文翻译集(目标检测,纹理分类)
  15. 怎样在微信中点击app下载链接直接打开下载安卓/苹果(apk/ipa,pxl,deb)文件
  16. 关于numpy.take()用法
  17. Java方法excel文件转换成xml文件
  18. 二年级课程表(4月11日-4月15日)
  19. meego linux 双系统,安装MeeGo和Windows 7双系统的方法
  20. 夏日将尽:以太坊的ERC-777能否顺利取代ERC-20?

热门文章

  1. 无重复元素的组合算法/n个列表中取n个不同的数
  2. 深度学习:批归一化和层归一化Batch Normalization、Layer Normalization
  3. Android Toast小解
  4. 苏宁易购工作怎么样_中原万达百货换上“苏宁易购”下一个会是家乐福吗
  5. 聚会「AHOI 2008」
  6. Mac 10.12安装迅雷2.7.2
  7. [转]使用Android-Studio 开发Android 程序
  8. 对比Linux系统和Windows系统哪个更好
  9. CocoaPods加载第三方库
  10. ASP实现AJAX的几种方式!