Android 平台上轻量级的组件间通信框架 Andromeda

Apache
Java 查看源码»
Android
爱奇艺
2018-04-20
周其

Andromeda是爱奇艺开源的一个Android平台上轻量级的组件间通信框架,主要特征如下: 不需要开发者进行bindService操作,即可实现不同进程的任意两个组件间的IPC通信; 即使不在同一进程,也可同步获取任意组件提供的服务; 可根据Fragment或Activity的生命周期自行对服务进程进行提高和降低优先级的操作; 支持IPC的Callback; 支持针对所有进程的事件总线; 在编译时可动态指定管理中心所在的进程,从而保证管理中心存活到最后。

Andromeda提供了接口式的组件间通信管理,包括同进程的本地接口调用和跨进程接口调用。

注:之所以分成本地服务和远程服务这两种,是由于本地服务的接口可以传递各种类型的参数和返回值,而远程接口则受AIDL的限制,参数和返回值只能是基本类型或者实现了Parcelable接口的自定义类型。

特色

  • 无需开发者进行bindService()操作,也不用定义Service,只需要定义aidl接口和实现

  • 同步获取服务。抛弃了bindService()这种异步获取的方式,改造成了同步获取

  • 生命周期自动管理。可根据Fragment或Activity的生命周期进行提高或降低服务提供方进程的操作

  • 支持IPC的Callback,并且支持跨进程的事件总线

  • 采用"接口+数据结构"的方式来实现组件间通信,这种方式相比协议的方式在于实现简单,维护方便

注意这里的服务不是Android中四大组件的Service,而是指提供的接口与实现。为了表示区分,后面的服务均是这个含义,而Service则是指Android中的组件。

Andromeda和其他组件间通信方案的对比如下:


使用方便性代码侵入性互操作性是否支持IPC是否支持跨进程事件总线是否支持页面跳转
Andromeda较小YesYesNo
DDComponentForAndroid较差较大NoNoYes
ARouter较好较大NoNoYes

接入方式

首先在buildscript中添加classpath(以1.0.0为例):

    classpath "org.qiyi.video.svg:core:1.0.0"
    classpath "org.qiyi.video.svg:plugin:1.0.0"

这两个分别是核心代码库和gradle插件库的路径。 在Application或library Module中使用核心库:

    implementation 'org.qiyi.video.svg:core:1.0.0'

在Application Module中使用gradle插件:

    apply plugin: 'org.qiyi.svg.plugin'
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

Andromeda —— 适用于多进程架构的组件通信框架

Android 的组件化由来已久,已经生产了一些不错的方案,尤其是在页面跳转这方面,阿里的 ARouter、 天猫的统跳协议、 Airbnb 的 DeepLinkDispatch, 借助注解来完成页面的注册,巧妙地实现了...

2018/07/13 08:16

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

开发者可在WindowsCoreOS创建自己的应用了

目前掌握的诸多线索均表明微软内部正在研发名为Windows Core OS的全新模块化系统,能够在双屏可折叠设备、传统桌面PC、HoloLens等任意设备上运行,即将到来的双屏可折叠设备“Andromeda”可能...

2018/10/24 10:17
12
0
Andromeda:首个适用于多进程架构的组件通信框架

引言 其实Android的组件化由来已久,而且已经有了一些不错的方案,特别是在页面跳转这方面,比如阿里的ARouter, 天猫的统跳协议, Airbnb的DeepLinkDispatch, 借助注解来完成页面的注册,从而...

2018/05/29 15:32
1K
1
Google OS 笔记本可能再过一年就会有了

Google 准备将 Chrome OS 跟 Android 合二为一的传闻,我们都已经不知道听了多少遍了。而在今天早些时候,Android Police 那边首度曝出了相关产品的时程安排。据两位「独立可信」的消息来源透...

2016/10/26 22:41
18
0
Android 组件化架构资料

1.Andromeda —— 适用于多进程架构的组件通信框架 2.AndroidModulePattern 3.Android组件化框架设计与实践 4.Android组件化:stitch框架 5.从零开始搭建Android组件化框架 6.安居客 Androi...

2018/07/13 08:56
122
0
【源资讯 第05期】有情怀能赚钱还能得奥斯卡的牛逼程序员,会不会被取代?

【一周源资讯(2016.11.19-2016.11.25)】老罗讲情怀,开源能赚钱,开源项目能拿奥斯卡,但是牛逼的程序员可能会革了自己的命~

2016/11/25 19:42
3.5K
1
【源资讯 第04期】GitHub 信息泄露,Linux 爆漏洞,Chrome 成黑客取款机,谢各位黑客不杀之恩!

【一周源资讯(2016.11.12-2016.11.18)】经历了各种漏洞各种泄露,真的要感谢各位黑客不杀之恩!

2016/11/18 23:12
8.6K
10
谈一谈今年的移动互联网寒冬

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/52316072 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。 大家...

2016/12/22 10:18
35
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部