内容简介: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 和其他组件间通信方案的对比
接入方式
首先在 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:首个适用于多进程架构的组件通信框架]
https://my.oschina.net/u/3783511/blog/1820539
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- MVVM 架构解析及 Jetpack 架构组件的使用
- MVVM 架构解析及 Jetpack 架构组件的使用
- 微服务架构————基本组件
- 组件化架构漫谈
- Rabbitmq基础组件架构设计
- Android组件化入门:一步步搭建组件化架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Paradigms of Artificial Intelligence Programming
Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!