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 |
Intentnew Intent(Context,Service.class); |
2 |
Context.startService(intent); |
OSGI Service
1 |
BundleContext//插件上下文 |
2 |
ServiceRegistration |
3 |
sayHelloImp.class.getName(),//服务名称 |
4 |
my, //服务详细实现类 |
5 |
null); |
2.服务查询
android Service
1 |
Intentnew Intent(Context,Service.class); |
2 |
Context.bindService(intent, new ServiceConnection()) |
3 |
... |
OSGI Service
01 |
//利用插件上下文BundleContext查询服务 |
02 |
ServiceReferenceclass.getName()); |
03 |
if (ref null ) |
04 |
//查找到服务 |
05 |
Service |
06 |
if (service null ) |
07 |
//调用服务接口 |
08 |
service.sayHello(imp); |
09 |
} |
10 |
//注销服务 |
11 |
context.ungetService(ref); |
12 |
} |
三 OSGI服务特点
OSGI服务是暂态的插件可能随时被关闭或卸载,所以我们每次在使用服务的时候都最好先查询服务是否还存在。
四 OSGI服务注意事项
使用OSGI服务时应注意服务接口java类的一致性,服务者与消费者应使用同样的java接口(类载入器同样),否则可能出现在是时候服务查询类型转换异常。在一般情况下,我们必须提供的服务java介面
版权声明:本文博主原创文章,博客,未经同意不得转载。
android插件技术-apkplug于OSGI服务基础-08的更多相关文章
- 【腾讯Bugly干货分享】Android 插件技术实战总结
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/1p5Y0f5XdVXN2EZYT0AM_A 前言 安 ...
- android插件化-apkplug框架启动-02
本文章基于apkplug v1.6.7 版本号编写,最新方式以官网最新消息为准 一 apkplug框架所须要的库文件(宿主) 可从http://git.oschina.net/plug/apkplug ...
- Android 插件技术:动态加载dex技术初探
1.Android动态加载dex技术初探 http://blog.csdn.net/u013478336/article/details/50734108 Android使用Dalvik虚拟机加载可执 ...
- android插件化-apkplug从宿主启动插件Activity-06
插件是一个apk文件它存在自己的Activity界面和UI显示,本节将解说如何配置插件的启动Activity以及如何从宿主启动它. 一 配置插件apk的对外启动Activity (内部activity ...
- Android官方技术文档翻译——Gradle 插件用户指南(1-3)
不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...
- Android官方技术文档翻译——Gradle 插件用户指南(5)
昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...
- Android官方技术文档翻译——Gradle 插件用户指南(7)
本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build- ...
- Android 插件化开发(一):Java 反射技术介绍
写在前面:学习插件化开发推荐书籍<Android 插件化开发指南>,本系列博客所整理知识部分内容出自此书. 在之前的项目架构的博文中,我们提到了项目插件化架构,提到插件化架构不得不提的到J ...
- Android插件基础之类加载器学习
记录学习java 加载器学习所获心得,逐步记录了解java加载器的过程.为了知悉android 插件化的实现原理,从而需要从头了解android加载apk,以及基础的java类加载的加载过程情况,为方 ...
随机推荐
- NGUI: Documentation
Video Tutorials Basic Tutorial (v.2.5.0+) SD & HD atlas switching (advanced) Packed Font (advanc ...
- 获取字符宽度:并非自适应。coretext去计算
获取字符宽度:并非自适应.coretext去计算 UniChar ch = [ns_str characterAtIndex:0]; CGGlyph glyph = 0; CTFontGetGlyph ...
- 向服务器写入错误日志-log
/// <summary> /// 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) /// </summary> /// <param name=" ...
- 刚写好的读取多网卡IP地址的函数
虽然现在一机多网卡已经很普遍(像Notebook带有线.无线.蓝芽等),但是找一个现成的能够一次过读出所有网卡IP地址的函数实在是难,无奈自己写了一个,好东西谁用谁知道. //uses WinSock ...
- Oracle Tablespace Transportation
前提:进行表空间传输需要用户有SYSDBA的系统权限,被移动的表空间是自包含的表空间,不应有依赖于表空间外部对象的对象存在.确定是否自包含可使用系统包DBMS_TTS中的TRANSPORT_SET_C ...
- VMware vSphere服务器虚拟化实验六 vCenter Server 添加储存
VMware vSphere服务器虚拟化实验六 vCente ...
- 断剑重铸之日,席卷朗朗乾坤之时--PHP学习一月漫记
传说中阿尔萨斯王子沉沦堕落之后,被巫妖王安置在冰冷的城堡中,静静地等待重出天日,它随身携带的宝剑也埋没与尘土之间,暗淡无光.他想起宝剑伴身,东征西战的峥嵘岁月,忆及如今身陷囹圄,一股怨念由心底升起,许 ...
- javascript (九)注释
单行注释,采用双斜杠 // 多行注释,采用 /* */
- 推荐一款功能强大的js 在线编辑器
http://jszi.cn/public/oherub/11/edit
- [置顶] 关于redhat系统yum源的配置1
安装过Linux软件的用户就知道,有时我们安装一个软件,需要依赖其他软件,所以必需找全所有的软件,这是一个极其麻烦的事情,有没什么方式可以让它自己去找依赖呢? 答案当然是肯定,这就需要我们配置一个神器 ...