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

栏目: IT资讯 · 发布时间: 7年前

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

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

尽管 ARouter 等方案也支持接口的路由,但单进程的接口路由已经无法满足日益复杂业务需求。在很多移动端应用中,既有单进程的通信需求,也有跨进程的通信需求,并且还要支持跨进程通信中的Callback调用,以及全局的事件总线。

爱奇艺 Andromeda 框架,不仅满足以上需求,而且还在此基础上做到了整个进程间通信的阻塞式调用,让异步连接代码更优雅。

Andromeda 的功能

Andromeda 是爱奇艺开源的一个 Android 平台上轻量级的组件间通信框架,目前主要包含以下功能:

  • 本地服务路由,注册本地服务是 registerLocalService(Class, Object), 获取本地服务是 getLocalService(Class);

  • 远程服务路由,注册远程服务是 registerRemoteService(Class, Object), 获取远程服务是 getRemoteService(Class);

  • 全局(含所有进程)事件总线, 订阅事件为 subscribe(String, EventListener), 发布事件为 publish(Event);

  • 远程方法回调,如果某个业务接口需要远程回调,可以在定义 aidl 接口时使用 IPCCallback;

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

这里为什么需要区分本地服务和远程服务呢?

最重要的一个原因是本地服务的参数和返回值类型不受限制,而远程服务则受 binder 通信的限制。可以说,Andromeda 的出现为组件化完成了最后一块拼图。

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

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

接入方式

首先在 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'

在 Andromeda 之前,可能是由于业务场景不够复杂的原因,绝大多数通信框架都要么没有涉及 IPC 问题,要么解决方案不优雅,而 Andromeda 的意义在于同时融合了本地通信和远程通信,完整地解决了组件通信的问题。

目前Andromeda 框架已经开源:https://gitee.com/bettar/Andromeda。本次杭州源创会,我们还特别邀请了 Andromeda 的作者、爱奇艺架构师——王海龙,为我们介绍 Android 组件化框架的发展和使用,以及适用于多进程架构的组件通信框架 Andromeda。

除此之外,我们 2018 年 7 月 21 日(周六)的杭州源创会 —— 移动开发专场还邀请了:阿里国际UED高级前端技术专家——辟蹊、即构科技资深架构师——冼牛、个推 Android 高级研发工程师——李子洋、钉钉开放平台高级技术专家——莘舟,五位行业大牛齐聚,以移动开发为核心,与你一起分享交流,进行一场关于面对面的技术对话。

点击报名,与业内大咖和更多小伙伴当面交流。

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

注:以上内容有引用和参考 [Andromeda:首个适用于多进程架构的组件通信框架]

https://my.oschina.net/u/3783511/blog/1820539


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界是数字的

世界是数字的

[美] Brian W. Kernighan / 李松峰、徐建刚 / 人民邮电出版社 / 2013-6 / 49.00

家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信......一起来看看 《世界是数字的》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具